Skip to content
GwiyeomGo Tech Blog
About GwiyeomGo

Git Cherry pick 을 사용해서 하나의 커밋만 운영에 배포 경험

GIT, 20222 min read

git cherry-pick

커밋을 선택적으로 브랜치에 적용시킬 때 사용한다.

배경

우리는 dev(개발계),staging(계발계2),master(운영) 브런치가 있다 배포날 master 에 급하게 고쳐야할 이슈가 생김 master 에서 a branch 생성하고 master 로 머지함 master 에 머지했던 commit 을 dev 에 추가시켜야함

해결 방법

로컬에서 command 로 직접 cheery pick 을 해야 한다고 함

(master) 1 - 2 - hoxfix-2
\ /(merge)
hoxfix-2
hoxfix-2 의 commit 해쉬 복사 ex) a123bced22
(dev) 1 - 2 - 3 - dev-cherry-3
\ /(merge)
dev-cherry-3
git cherry-pick a123bced22
master 브랜치에서
git pull origin master
git checkout dev
git pull origin dev
git checkout -b dev-cherry-3
git checkout master
git log --pretty=oneline
>> (체리픽 할 코드) 복사
git checkout dev-cherry-3
git cherry-pick (체리픽 할 코드)
git push origin dev-cherry-3
이후 mr을 dev 로 만듬 + 머지

방법 2 (cherry-pick a button) gitLab 자체 cherry-pick a button 있음

git 의 origin 저장소를 최신으로 업데이트 하고 dev 브렌치를 로컬에 받음

git remote update

git checkout -t origin/dev

그 후에 dev 에서 branch 를 새로 생성 (#1) 작업 작업 후 commit git push origin #1 origin 의 #1 을 origin 의 dev 로 merge request merge 이후 gitLab의 경우 cherry-pick 버튼 클릭 해당 commit 만 staging이나 master로 cherry-pick 가능

참고

gitLab docs https://itzjamie96.github.io/2020/12/10/git-cherry-pick-basics/ https://cjh5414.github.io/get-git-remote-branch/

© 2024 by GwiyeomGo Tech Blog. All rights reserved.