Git은 다양한 고급 기능을 제공하여 복잡한 작업 흐름에 대응할 수 있게 해줍니다. 이 글에서는 Git의 rebase, merge, 그리고 stash에 대해 알아보겠습니다.
rebase vs merge
두 명령어 모두 브랜치 간의 변경사항을 통합하는 데 사용되지만, 사용 방식과 결과가 다릅니다.
merge
merge는 두 브랜치를 합칠 때, 두 브랜치의 공통 조상과 각 브랜치의 최신 커밋을 사용하여 새로운 커밋을 생성합니다.
$ git checkout main
$ git merge feature-branch
이렇게 하면 feature-branch의 모든 변경사항이 main 브랜치에 통합됩니다.
장점 : 원래의 브랜치 히스토리가 유지됩니다.
단점 : 복잡한 브랜치 히스토리가 생성될 수 있습니다.
rebase
rebase는 현재 브랜치의 커밋을 임시로 저장하고, 대상 브랜치의 커밋으로 현재 브랜치를 업데이트한 후, 임시로 저장한 커밋을 다시 적용합니다.
$ git checkout feature-branch
$ git rebase main
장점 : 선형적인 커밋 히스토리를 생성합니다.
단점 : 과거의 커밋 히스토리를 변경하므로 협업 중인 경우 다른 사용자와 충돌이 발생할 수 있습니다.
stash : 변경사항 임시 저장 및 복구
현재의 작업을 임시로 저장하고, 나중에 다시 불러와 계속 진행할 수 있게 해주는 기능입니다.
임시 저장하기
$ git stash save "임시 저장 메시지"
임시 저장된 목록 보기
$ git stash list
임시 저장된 변경사항 복구하기
$ git stash apply stash@{0} # 가장 최근의 stash 적용
임시 저장된 변경사항 제거하기
$ git stash drop stash@{0}
Tip: git stash pop은 apply와 drop을 동시에 수행합니다.
마치며
Git은 다양한 고급 기능을 제공하여 개발자의 다양한 요구사항을 충족시켜줍니다. 이러한 고급 기능들을 잘 활용하면 보다 효율적인 개발 및 협업이 가능합니다. 이 글을 통해 rebase, merge, stash에 대한 기본적인 이해를 얻었기를 바랍니다.
'Git' 카테고리의 다른 글
git log로 코드의 변경사항을 확인하는 방법 (0) | 2023.11.03 |
---|---|
Git lfs : 대용량 파일 관리 (0) | 2023.10.11 |
원격 저장소와 Git 연동 (0) | 2023.09.08 |
Git 기본 명령어 (0) | 2023.09.07 |
Git : Branch & Merge (0) | 2023.09.06 |