반응형
branch를 파서 힘들게 작업했는데
기획이 바뀌거나 하는 이유로 반영할 수 있는 커밋이 한두 개밖에 되지 않을 때가 있다
이럴 때 원하는 커밋 한두 개만 가져와서 dev branch에 반영해보자
git에서 cherry-pick이라는 걸 사용할 수 있다
① branch가 두 개 있다고 가정하자
feature/signup
feature/signin
feature/signin branch에 있는 커밋 하나만 가져오려고 한다
② commit 커밋 id 가져오기
git checkout feature/signin
git log --abbrev-commit
`````
commit 89c1234
`````
89c7823 형태 => 커밋 ID를 가져온다
@ git의 commit id는 SHA1 알고리즘으로 만들어진 해시값이다
중복 없는 임의의 문자열이다
중복이 없는 해시 값이기 때문에 1, 2, 3처럼 순서대로 id를 가지는 경우처럼 이전 번호, 다음 번호 등을 확인하는 과정 생략
=> 온라인은 물론이고, 오프라인에서도 커밋이 가능하다
③ cherry-pick으로 커밋 가져오기
git checkout feature/signup
git cherry-pick 89c1234
git push
이 과정을 완료하면
feature/signup branch에 내가 원하는 커밋 하나만 가져오게 된다
간단하다
위 방식은 하나의 커밋만 가져오는 거고
A 커밋~B 커밋처럼 범위 기준으로 커밋을 가져올 수도 있다
④ cherry-pick으로 A~B 커밋 가져오기
⑴ A 다음~B 포함 커밋 가져오기
git cherry-pick A..B
=> git cherry-pick 89c1234..78d3456
⑵ A 포함~B 포함 커밋 가져오기
git cherry-pick A^..B
=> git cherry-pick 89c1234^..78d3456
반응형
'Git' 카테고리의 다른 글
[#. Git] git clone 프로젝트 가져온 후 원격 저장소 branch도 가져오기, branch 연결하기 (0) | 2021.04.26 |
---|---|
[#. Git] Git 명령어 모음(업데이트 예정) (0) | 2021.01.22 |
[# Git] 새 브랜치 branch 생성하기, 커밋 commit 하기, 원격 저장소에 push 하기 (0) | 2020.08.21 |
[#Git] Git 명령어 정리, Config 설정 (0) | 2020.08.06 |
[#Git] Git에서 autocrlf 설정하기, warning: LF will be replaced by CRLF in package-lock.json 해결 (0) | 2020.07.20 |