git/gitCommand

git merge, git rebase

oniri1 2024. 10. 11. 12:30

둘다 하나의 브랜치를 다른 브랜치와 병합할 때 사용하는 명령어이다.

git merge

기존 커밋들을 그대로 냅둔 상태로 병합하게 되므로 협업에서 누가 무엇을 했는지 더욱 명확하게 알 수 있다.

브랜치 병합

먼저 병합 대상 브랜치로 이동한 후, 병합하려는 브랜치 이름을 사용하여 병합하면 된다.

git checkout main
git merge 병합할브랜치명(예: test)

git rebase

기존 커밋들을 다시 재정렬해 한줄로 깔끔하게 표현되지만, 커밋 충돌이 발생할 수 있어 신중하게 사용해야 한다.

git checkout 작업중인브랜치명(예: test)
git rebase 병합할브랜치명(예: main)

커밋 충돌시

충돌난 파일을 수정 후 git add 충돌났던파일명을 입력 후 git rebase --continue로 진행이 가능하다.
또한, git rebase --abort로 rebase를 취소할 수 있다.

git rebase -i HEAD~숫자

실행시 인터페이스가 나타나며, 커밋 히스토리를 수정하거나, 여러 커밋을 합치거나, 커밋 메시지를 변경이 가능하다.
HEAD~숫자로 어떤 커밋까지 포함할지 결정할 수 있다.

git rebase -i HEAD~숫자

3가지 옵션이 나타나는데 각각의 옵션이 가지는 특징은
pick: 해당 커밋을 그대로 유지
squash: 해당 커밋을 이전 커밋과 합침
reword: 해당 커밋의 메시지를 수정