본문 바로가기
dev-ing/git

[Git] Sourcetree amend, cherrypick 하기 (기본 개념, 사용 방법)

by ota-min 2022. 10. 7.
반응형

git-썸네일
git

 

git에는 수많은 기능들이 있지만 amend, cherrypick, reset, revert, stash와 같은 기본적인 기능을 GUI tool 중 하나인 Sourcetree를 이용해 하나씩 알아보겠습니다.
(기본 개념 + GUI(Sourcetree) 사용법에 대해서만 정리한 내용입니다)

 

아래에서는 방금 전 커밋을 수정할 수 있는 amend의 기본 개념과 사용법에 대해서 알아봅니다.

 

Git amend란?

방금 전에 만든 커밋의 소스를 수정해야 할 경우, 방금 전에 만든 커밋의 커밋 메시지를 수정하고 싶을 때 사용합니다.

 

 

Sourcetree에서 진행하기

방금 전 커밋을 생성했는데, 몇 군데 코드를 수정하는 것을 깜빡해서 다시 수정해야한다면 어떻게 해야 할까요???

 

1. 누락한 코드를 수정 및 저장한다.
2. 수정한 파일을 스테이지에 올린 후, 커밋 탭을 누르고, 우측 하단에 커밋 옵션을 클릭, 마지막 커밋 정정을 체크, 그리고 커밋 메시지를 작성한 후 커밋한다.
3. History에 수정된 코드와 커밋 메시지가 보인다.    

 

커밋이 원격 저장소에 올라간 상태인데 커밋 메시지를 수정하고 싶을 때는???

 

1. 로컬 저장소에만 커밋을 한 상태에서의 3가지 단계를 그대로 진행한다.
2. 도구 탭 - 옵션 - Git에서 강제 푸시를 체크한다.
3. Push를 누르고 강제 푸쉬 체크한 후, push 버튼을 누르면 수정된 커밋 메시지를 확인할 수 있다.

amend-강제푸쉬-설정
도구-옵션-Git

 

Git cherrypick 이란?

다른 브랜치의 커밋 하나를 내 브랜치에 반영하고 싶을 때 사용합니다.

 

이럴 때 사용해요!
개발자 A와 B, 2명이 개발을 진행한다고 가정해보겠습니다.
`master` 브랜치를 각자 개발한 코드들을 합치는 main 브랜치라고 약속을 했습니다.
A와 B는 각자 자신이 개발해야 할 브랜치인 `feature/a`, `feature/b` 브랜치를 생성하고 각자 개발을 진행하겠죠??
여기서 A가 3개의 커밋을 만들었고, B는 자신이 수정한 코드에 A가 2번째로 만든 커밋만 가져와서 반영하고 싶습니다. 
바로 이때, `cherry pick`을 이용해 A의 2번째 커밋만 가져와서 자신의 브랜치 `feature/b`에 반영할 수 있습니다.

 

SourceTree에서 진행하기

1. History → 코드를 합치고 싶은 branch로 check-out 한다.(해당 브랜치 더블 클릭)
2. 가져오고 싶은 커밋을 우클릭 후 `cherry-pick`을 선택한다.
3. 가져오고 싶은 커밋의 커밋 메시지와 함께 최신 커밋 위에 달라붙어 있으면 성공!
    (제대로 반영됐는지 확인은 언제나 필수!)

 

 

 

반응형

댓글