오늘은 git을 활용하기 위해서 사용되는 명령어들을 정리해 볼 예정이다. 내용은 learn git branching 게임을 참고하여 정리할 것이다.
git merge branchName
git rebase branchName
git merge는 두개의 새 기능을 각각 다른 브랜치에서 개발한 경우 하나의 브랜치로 합칠 경우에 쓰인다.
git rebase는 기본적으로 commit들을 모아서 복사한뒤 다른 commit을 생성하여 합쳐주는 명령어이다. rebase를 하면 commit의 흐름을 보기좋게 한줄로 만들 수 있어 저장소의 commit log와 이력을 깔끔하게 정리할 수 있다.
git merge bugFix
를 하게 되면 오른쪽처럼 main branch가 두 노드를 합친 commit을 가리키고 있다.
만약 bugFix branch도 c4로 옮기고 싶다면
git checkout bugFix
git merge main
위 명령어를 통해 합쳐질 수 있다.
git rebase main
을 하게되면 가운데처럼 bugFix의 작업내용이 main의 바로위에 한줄의 commit으로 보이게 된다. c3는 어딘가 남아 있지만 c3'라는 복사본이 생성되게 된다. 하지만 main이 그대로이기 때문에 이를 해결하려면
git rebase bugFix
를 통해 바로 위에 있는 main이 더 앞쪽의 commit을 가리킬 수 있도록 이동시킬 수 있다.