Git/Learn Git Branching

4-1. 딱 한 개의 커밋만 가져오기

가지코딩 2025. 4. 22. 15:09

🎮 게임으로 Git 익숙해지기

https://learngitbranching.js.org/?locale=ko

 

Learn Git Branching

An interactive Git visualization tool to educate and challenge!

learngitbranching.js.org


설명

개발 중에 종종 이런 상황이 생깁니다: 눈에 잘 띄지 않는 버그를 찾아서 해결하려고, 어떤 부분의 문제인지를 찾기 위해 디버그용 코드와 화면에 정보를 프린트하는 코드 몇 줄 넣습니다.

디버깅용 코드나 프린트 명령은 그 브랜치에 들어있습니다. 마침내 버그를 찾아서 고쳤고, 원래 작업하는 브랜치에 합치면 됩니다!

이제 bugFix브랜치의 내용을 main에 합쳐 넣으려 하지만, 한 가지 문제가 있습니다. 그냥 간단히 main브랜치를 최신 커밋으로 이동시킨다면(fast-forward) 그 불필요한 디버그용 코드들도 함께 들어가 버린다는 문제죠.

이 문제를 해결하는 여러가지 방법이 있습니다만, 가장 간단한 두가지 방법 아래와 같습니다:

  • git rebase -i
  • git cherry-pick

대화형 (-i 옵션) 리베이스(rebase)로는 어떤 커밋을 취하거나 버릴지를 선택할 수 있습니다. 또 커밋의 순서를 바꿀 수도 있습니다. 이 커맨드로 어떤 작업의 일부만 골라내기에 유용합니다.

체리픽(cherry-pick)은 개별 커밋을 골라서 HEAD위에 떨어뜨릴 수 있습니다.


문제

level mixed1


풀이

git rebase -i HEAD~3
git branch -f main HEAD

 

또는

git checkout main
gut cherry-pick c4

'Git > Learn Git Branching' 카테고리의 다른 글

4-3. 커밋 갖고 놀기 #2  (1) 2025.04.22
4-2. 커밋들 갖고 놀기  (0) 2025.04.22
3-2. 인터랙티브 리베이스 소개  (0) 2025.04.22
3-1. Cherry-pick 소개  (0) 2025.04.22
2-4. Git에서 작업 되돌리기  (1) 2025.04.10