본문 바로가기
일상/개발 관련 일상

git cherry-pick 과 관련된 일상

by 슴새 2024. 10. 16.
반응형

학부때는 git 운영 전략을 세워봐도 브랜치 이름이 기껏해야

- feature/홍길동

- feature/login

이런식이었다.

 

회사들어와서 보니 브랜치이름이

- feauture/824329023

- feauture/824325926

이런식이다.

실제 형식을 가져온 건 아닌데 비유하자면 이런 느낌임..

 

아무튼 헷갈리게 생겼다보니 featureA에 커밋해야 할 거를 실수로 featureB에 커밋해버렸다.

그나마 다행인건 push 전에 발견했고, 둘다 내가 작업하는 feature 브랜치 였다.

아무튼 featureB 커밋취소하고 코드들을 다시 featureA로 옮길생각에...한숨이 나왔는데

찾아보니 cherry-pick 명령어로 커밋만 그대로 다른 브랜치에 옮길 수 있었다.

 

옮겨야 하는 브랜치:  feature/New

잘못 커밋한 브랜치:  featuer/Old

잘못 커밋한 커밋 해쉬번호 : commitId (git log 명령어로 알아낼수 있다)

 

라고 하면 

  1. git checkout feature/New 
  2. git cherry-pick commitId (새브랜치로 커밋 옮기기)
  3. git checkout feature/Old (구브랜치로 이동)
  4. git reset HEAD (구브랜치에서 잘못 올린 커밋 삭제)
  5. 다시 원하는 브랜치로 돌아와서 작업

cherry-pick 자체는 학부때도 들어본거긴 한데, 실제 사용법은 이제야 알겠는 느낌이다.

 

*

git 은 참 중요한 것 같다.

최근 타팀동료의 git 실수로 내가 거의 한달 걸려 작업한 소스가 엉망이 돼서,

거의 하루를 온전히 들여서 복구한 적이 있다.

솔직히 짜증이 조금 났다.

나한테 일시키는 사람이 "아 그런 일이 있어서 하루가 소모됐다고? 그럼 개발기한 하루 늘려줄게" 라고..하겠냐고...

안그래도 바쁜데...정말이지 여유가 없으니까 성격이 날카로워지는 기분이다.

그러면서도, 나도 다른 팀원에게 짜증나는 사람이 되지 않도록 git 을 조심히 써야겠다는 생각을 하게 된다.

학부때처럼 구글링했을 때 쉽게 뜨는 방법들을 아무 생각 없이 쓰는건 지금은 정말 상상도 못할 일이다.

cherry-pick 명령어도 이번에 처음쓰다보니 좀 쫄렸는데... 의도한 대로 잘 된거 같아서 다행이다.

 

반응형

댓글