git rebase & conflict 충돌 해결

bin·2023년 2월 23일
0

git rebase
브랜치 만들었던 것처럼 기반을 바꿉니다(말 그대로 베이스)

새로운 작업을 모두 마치고 push하기 전에는
1.main branch로 이동하여 remote main을 pull받습니다
2. 내가 push git feature branch 로 이동합니다
3. 'git rebase -i main'를 진행합니다.

rebase 하는 동안 squash 진행할 때에는
1. 가장 오래된 commit을 pick합니다
2. 다른 커밋 메세지는 가장 오래된 commit을 기준으로 squash합니다.
3. 다른 커밋의 작업 내역이 없어지는 것이 아닙니다.
4. Esc => :wq로 창에서 빠져나옵니다.

rebase 후 push 하기

  1. rebase는 commit gistory를 정리하는 역할을 합다.
  2. 같은 브랜치에서 rebase를 할 때마다 history가 달라질 수 있습니다.
  3. 수정 사항이 추가로 생긴 후 다시 rebase하면 history가 무조건 달라집니다.
  4. git은 history가 다른 걸 확인합니다.

conflict 충돌 해결하기

conflict은 commit과 commit 사이에서 일어나는 작업 내용 사이의 충돌이므로 세개의 커밋이 한 번에 충돌 날 가능성이 있습니다.

  1. 충돌이 일어난 경우 rebase가 진행되지도, 끝나지도 않고 도중에 멈춰 있는데
  2. 터미널이 같은 메세지로 rebase가 진행중임을 알려주니 걱정하시지 않으셔도 됩니다!
  3. 충돌은 충돌일 뿐, 해당하는 코드를 수정 후
  4. git add .(여기서 git commit은 하지 않습니다. 수정 사항이 없으니까)
  5. git rebase --continue를 진행합니다
  6. 멈춰 있던 rebase가 진행됩니다.
  7. 충돌이 여러번 나면 그때마다 충돌을 해결하고
    git add . / gut rebase --continue를 반복합니다.
  8. 계속 해결이 안된다면, git rebase --abort로 아예 rebase를 진행하기 전 상황으로 돌아갈 수도 있습니다.
profile
프론트엔드부터 공부하고 있습니다

0개의 댓글