Learn Git Branching - 코드 이리저리 옮기기 🌔

jaehee kim·2020년 8월 3일
post-thumbnail

Learn Git Branching

Cherry-pick


이제 배워 볼 다음 개념은 "작업을 여기저로 옮기기" 입니다. 다시 말해, 개발자들의 언어로 "이 일은 여기에, 저 일은 저기에 두고 싶어" 정확하고 우아하고 유연하게하는 것입니다.

이 시리즈의 첫 명령어는 git cherry-pick 입니다. 다음 과 같은 형태로 사용합니다:

  • git cherry-pick <Commit1> <Commit2> <...>

현재 위치(HEAD) 아래에 있는 일련의 커밋들에대한 복사본을 만들겠다는 것을 간단히 줄인 말입니다.

mastermaster 로 복사하고 싶은 작업이 있는 브랜치 side 가 있습니다.

이것은 rebase 를 통해서 할 수 있습니다, 하지만 체리-픽이 이 작업을 어떻게 수행하는지 확인해 봅시다.

git cherry-pick C2 C4

git cherry-pick c3 c4 c7



인터렉티브 리베이스(Interactive Rebase)


git cherry-pick 은 여러분이 원하는 커밋이 무엇인지 알때(각각의 해시값도) 아주 유용합니다 -- 체리-픽이 제공하는 간단함은 아주 매력적입니다.

원하는 커밋을 모르는 상황에는 인터렉티브 리베이스를 사용하면됩니다 -- 리베이스할 일련의 커밋들을 검토할 수 있는 가장 좋은 방법입니다.

인터렉티브 리베이스가 의미하는 뜻은 rebase 명령어를 사용할 때 -i 옵션을 같이 사용한다는 것입니다.

이 옵션을 추가하면, git은 리베이스의 목적지가 되는 곳 아래에 복사될 커밋들을 보여주는 UI를 띄울것 입니다. 각 커밋을 구분할 수 있는 각각의 해시들과 메시지도 보여줍니다.

"실제" git 에서는 UI창을 띄우는것 대신에 vim과 같은 텍스트 편집기에서 파일을 엽니다.

인터렉티브 리베이스 대화창이 열리면, 3가지를 할 수 있습니다:

  • 적용할 커밋들의 순서를 UI를 통해 바꿀수 있습니다.
  • 원하지 않는 커밋들을 뺄 수 있습니다. 이것은 pick을 이용해 지정할 수 있습니다.
  • 마지막으로, 커밋을 스쿼시(squash)할 수 있습니다. 요약하자면 커밋을 합칠 수 있습니다

git rebase -i HEAD~4


git rebase -i HEAD~4




notion 정리
[notion]Learn Git Branching - 코드 이리저리 옮기기 🌔

0개의 댓글