커밋, 푸쉬를 해도 잔디가 안심어질 때 rebase를 통한 해결 방법입니다.
먼저 git log --oneline 으로 히스토리를 확인합니다.
그런 다음 잔디가 안심어진 부분의 바로 앞 부분의 커밋ID를 복사합니다.
위의 사진을 보면 06fcc1c convert test - wav -> base64 encoding - hwp read 까지 잔디가 심어졌다고 가정할게요!
그 이후 커밋. 그러니까 2f2ab74 부터 잔디가 안심어졌으니까,
잔디가 마지막으로 심어진 부분의 커밋ID(06fcc1c)로 rebase합니다.
git rebase -i -r 06fcc1c
그럼 아래 사진처럼 콘솔이 나오는데 그대로 둘 커밋이면 pick 자체로 놔두시고,
수정을 해야된다면 pick 을 지우고 edit 으로 수정해줍니다.
여기서는 잔디가 모두 안심어졌으므로 4개 다 edit으로 바꿔야겠죠? pick을 모두 edit으로 바꾸시고
esc 를 누른다음 :wq 를 눌러서 저장하고 빠져나가세요. 숨쉬세요. 거의 다왔습니다.
예)
edit 2f2ab74
edit 63f1681
edit 2375852
edit a811749
:wq를 입력해서 저장하고 빠져나왔다면 아래같은 내용이 나옵니다.
git commit --amend 를 하면 수정하면서 계속 진행하실 수 있어요.
git commit --ament --author="이름이나 별명 <email주소>" <--- 여기서 < > 이거 넣어주셔야돼요
참고로 email주소는 본인 github -> settings -> Emails 에 등록된 email 이어야 합니다.
저렇게 치면 아래같은 화면이 나옵니다. 여기서 수정할 게 있으면 수정을 하시고, 수정할 내용이 없으시면
:q 로 수정하지않고 빠져나오세요.
빠져나오시면 아래같은 화면이 나옵니다. 축하합니다! 제대로 된거시에요!
이제 다른것도 계속 진행해야죠? 위의 예에서는 잔디에 4개가 누락됐었으니 3번만 똑같이 하면 됩니다.
이번에는 git rebase --continue 를 하면 자동으로 다음 커밋이 아까처럼 표시돼요.
그럼 똑같이 :q 로 수정없이 빠져나오거나, 수정할 것이 있다면 수정하고 :wq 로 빠져나오시면 돼요.
이제 4번을 다 했다고 가정합시다. 또 git rebase --continue 를 입력하면
더이상 rebase할 수 없어요. 성공적으로 되었다고 뜹니다. 축하링
근데 우리의 목적은 안심어진 잔디 심기였습니다.
지금까지는 안심어지고, 잘못심어진 잔디를 뽑아서 다듬고, 재정렬 시켰다고 생각하고..
이제 잔디를 강제로 심어야죠?
git push -f origin main
혹시 하다가 문제가 생기면 아래 명령어를 입력해서 되돌리시면 돼요.
git rebase --abort
끝~
'공부내용 정리 > git' 카테고리의 다른 글
[Git] Git reset : Commit, Push 되돌리기 (0) | 2024.11.22 |
---|---|
[GitHub] 깃허브 협업하기 (0) | 2024.03.29 |
Git 정리 (0) | 2021.09.12 |