Git

[Git]내가 원하는 커밋만 고르고 싶다(Cherry-Pick)

잠이와요 2023. 8. 2. 21:23

내가 올린 pull request 다른 팀원의 commit 섞여 버렸다고 연락이 왔다.


이미 올린 pull request에서 commit을 빼는 방법은 모르겠다…

 

일단 나의 git은 

-master(팀의 마스터 레포지토리와 같은 상태)

-MyPlaceSearch(내가 새로 만든 코드가 있는 브랜치)

이 상태였다

 

그런데 MyPlaceSearch에서 올린 PullRequest에 다른 팀원의 commit이 섞인것!! 이유는 아직 모르겠다…다음에 여쭤봐야지

 

그래서 알아낸 방법이 Cherry-Pick이었다

 

cherry-pick이란 케이크 위에 얹어져 있는 체리만 집어먹는 행위라는 의미로 ‘인기있는 특정 요소만 고른다’라는 뜻이다.


일단 사용 방법은 

새로운 branch를 만들고

git cherry-pick [SHA]

를 하면 그 커밋이 반영된다


그런데 내가 실수는 master에서 브랜치를 새로 생성하는게 아니라 MyPlaceSearch에서 브랜치를 새로 생성한 것이다.

그렇게 되면 의미가 없기 때문에 위 처럼 cherry-pick이 실패한다

 

난 특정 브랜치를 만드는 것은 어디서 하든지 상관이 없을 줄 알았는데 중요했다

master에서 브랜치를 새로 만들어야지 master 코드가 그대로 반영된 새로운 브랜치 하나가 생기는 !

때문에 만들었던 브랜치를 삭제했다


master에서 브랜치를 새로 만들고 cherry-pick 했더니 반영되었다!

 

짱~~~

 

 

얼마전까지는 브랜치 없이 작업했었는데

얼마나 위험하게 작업했었던건지 깨달았다

master브랜치에 내가 수정한 코드가 올라가있었다면 얼마나 더 복잡했을지 알 수 없다

정말정말 브랜치를 만들어서 써야겠다!!