일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 중복제거
- 리스트비교
- enumtype
- Spring
- wordpress블로그
- mybatis
- 권한정책
- enum
- peer authentication 에러
- ansible
- 두개리스트비교
- 리스트차집합
- PostgreSQL
- anymatch메서드
- 리스트합집합
- AWS
- route53
- postgresql13
- 지옥같은git
- 널포인터에러
- Java
- hashset
- instance생성
- db
- lightsail
- 리스트교집합
- Annotation
- list중복제거
- WordPress
- awsconsole
- Today
- Total
Anyway
[GIT] 간지나게 체리픽 하기 cherry pick 🍒 IntelliJ 본문
Git이란 건 가끔 기특하기도 하고 .. 또 날 가끔 ㅉ ㅏ증나게 하기도 하고.. 이렇게 편할 수 있나 싶기도 하면서
또 날 자주 호 ㅏ나게 한다.
현재 프로젝트에서는 여러 사람이 작업 하는 것이다 보니
각자의 branch를 따서 작업하고 > 중간 지점에서 합치고 > 개발 또는 운영 branch로 merge 하는 방식으로 진행되고 있다.
순차적으로 기능이 차례차례 완성되어가면 좋겠지만 그렇데 된다면 QA가 왕섭섭해 하겠지
기능 완성 > 개발 branch에 merge > test > 운영 main branch에 merge 이런식으로 반복되는 와중에
지금 우리의 branch 작업은 기능이 완성된 이후 배포되었다면 배포 된 branch에서 또다시 branch를 따서 수정되어야 하기에
완성되었던 기능이 수정되고 에러가 발견되어 또 수정되고 하면 branch 작업이 꼬이게 된다.
따라서 수정된 branch를 다시 merge 시켜줘야 하고 이전에 작업하던 branch에도 merge를 해줘야 한다는 말씀 ~ ~ ~
근데 merge 하는 방법 말고도 cherry pick이라는 방법이 있다. 말로만 들어봤는데 처음 써봤다.
보통 merge를 하게 되면 이렇게 거추장스럽게 회색 한 줄이 만들어지게 되는데(나만 거추장스럽다 느낄수도)
cherry pick을 하면 이렇게 남지 않는다.
git - cherry pick 이란?
특정 커밋을 다른 branch로 가져오는 git 명령어이다. 즉 나의 branch에서 커밋을 한 이후 이 커밋 내역을 다른 branch에도 적용하고 싶을 때 사용하는 것이다. 즉 필요한 커밋만 골라서 가져올 수 있기 때문에 branch를 병합하지 않고도 원하는 커밋사항만 반영할 수 있는 유용한 기능이다. 📝 cherry pick
- CLI에서 git 명령어로 cherry pick 사용하기
git log
가져오고 싶은 커밋의 ID를 확인한다.
git checkout target-branch
git cherry-pick <commit-id>
중요 : 커밋 사항을 가져다 놓고 싶은 branch로 이동
가져오고 싶은 커밋사항의 id와 함께 cherry-pick 명령어 실행
git cherry-pick <commit-id1> <commit-id2> <commit-id3>
여러 개 커밋 가져오기 가능 ~
git cherry-pick <시작 커밋 ID>^..<끝 커밋 ID>
범위 지정해서 쓰기도 가능 ~
2. IntelliJ에서 쉽고도 빠르게 cherry pick 하기
나의 작업 환경 (branch)의 커밋 사항을 dev로 가져오고 싶은 상황
커밋 사항을 가져다 놓고 싶은 dev로 checkout 한다.
git log 창의 branch에서 내 branch를 선택해준다
branch명은 가렸다.
현재 checkout은 dev로 되어 있기에 내가 가져올 커밋사항이 아직 없는 상황인데
내 branch로 바꾸게 되면 그 branch의 내역이 보이게 된다.
가져오고 싶은 commit : 'del_yn 추가 및 insert문 추가' 라는 내역을 dev branch에도 적용하고 싶었다.
오른쪽 버튼을 누르고 Cherry-Pick 눌러주면 끝이다.
쉽고 빠르고 깔끔해서 좋았다. 개별 commit으로 급하게 적용해야 하거나 공유되어야 하는 경우 유용할 듯 !
'Git' 카테고리의 다른 글
[Git] IntelliJ - java project Github에 올리기 (0) | 2024.08.21 |
---|---|
[Git] 기본 명령어 간단 정리 init add commit log (0) | 2024.08.21 |
[Git] Config Author 변경 (0) | 2024.08.20 |