2021 08.29 git rebase 충돌나지않을때 update
2021 08.29 git rebase 중지하기
1. merge
2. rebase
두가지 방법이 있다.
위와 같은 사진은 merge 하는 방법이다 .
만약 여러사람이 협업을 하고있다는 가정하에 , commit 이란 부분이 사이사이에 들어가기 때문에 조금 더러워진다.
위와 같은 사진은 rebase 부분이다 .
rebase 를 하게되면 기존에 내가 commit 한것을 병합을 해서 ,
새로 commit 으로 바꿔주게 된다 .
한 branch 에 commit 을 3번했다는 가정하에 ,
git checkout master 로 가서
git rebase -i master feature/jakdu 를 입력한다.
위와 같은 화면이 나오게 된다 .
이렇게 텍스트 편집기로 들어오게 되고 ,
그리고 나서 2 번째 3 번째 pick
을 s
로 바꿔주면 된다 .
만약 여기서 충돌이 나지 않는다면 , push origin 을 하면 된다 .
master
로 가지않고 지금 branch
에서 하는 방법도 있다.
git rebase -i @~[커밋한 횟수]
예를들어서 ) 커밋을 3번했다고하면
feature/user > git rebase -i @~3
이런식으로 해주면 된다.
그리고 나머지는 같다. 제일 위에있는것은 pick
그대로 두고 나머지 밑에는 s
로 바꿔주면 된다.
그러면 아까와 같이 commit 메세지들이 보이게된다.
# This is a combination of 3 commits. //이 위치에서 dd를 눌러 줄을 삭제한다.
# The first commit's message is: //이 위치에서 dd를 눌러 줄을 삭제한다.
Task 1/3 // 이 위치에서 dd를 눌러 줄을 삭제한다.
# This is the 2nd commit message: //이 위치에서 dd를 눌러 줄을 삭제한다.
wip //이 위치에서 dd를 눌러 줄을 삭제한다.
# This is the 3rd commit message: //이 위치에서 dd를 눌러 줄을 삭제한다.
git rebase test commit three // 나는 이 commit만 남기고 싶으므로 이건 냅둔다.
# Please enter the commit message for your changes. Lines starting
# with '#' will be ignored, and an empty message aborts the commit.
# rebase in progress;
이런식으로 보이게 되는데 , commit
메세지를 하나만 남겨야하니 , 나머지 commit
메세지는 삭제를 해주고 commit
메세지를 하나만 작성하도록 한다.
git rebase test commit three
# Please enter the commit message for your changes. Lines starting
# with '#' will be ignored, and an empty message aborts the commit.
# rebase in progress;
그러면 총 이렇게 남을것이고 , git push origin feature/user
로 push
를 해주면 된다.
git checkout feature/hi 로 branch 를 바꾸고 나서 ,
git rebase -i master 를 입력해서 , 2번째와 3 번째는 S 로바꾸고 나서 wq 해서 나간다.
만약에 branch 를 master 로 바꾸게 된다면
(git rebase -i master feature/hi 를 입력해줘야한다.)
충돌이 나게 되면 , git rebase --continue 를 해준다.
그리고 vi README.md 로 다시 들어가서 ,
git add . 또는 git READEME.md 를 했는데 다시 에러가 발생한다면 ,
git rebase --continue 를 다시 해준다.
정상적으로 되지않을때는 뒤에 --force 를 붙여줘야한다.
ex )
git push origin feature/hi --force
git rebase --continue 가 해결이 끝나면 git push 를 해주면 된다.
git rebase --abort
참고자료 :