수색…
소개
cherry-pick은 커밋에서 소개 된 패치를 취하여 현재있는 지사에서 다시 적용하려고 시도합니다.
통사론
- git cherry-pick [-edit] [-n] [-m 부모 번호] [-s] [-x] [--ff] [-S [key-id]] 커밋 ...
- git cherry pick - 계속
- git cherry-pick --quit
- git cherry-pick - 항아리
매개 변수
매개 변수 | 세부 |
---|---|
-e, --edit | 이 옵션을 사용하면 git cherry-pick 을 사용하여 커밋하기 전에 커밋 메시지를 편집 할 수 있습니다. |
-엑스 | 커밋을 기록 할 때 "(체리를 커밋에서 선택 함)"이라는 줄을 원래 커밋 메시지에 추가하여이 변경 내용을 체리에서 가져온 커밋을 나타냅니다. 이것은 충돌없이 체리 피크에만 적용됩니다. |
--ff | 현재 HEAD가 cherry-pick'ed 커밋의 부모와 동일하다면이 커밋에 대한 빨리 감기가 수행됩니다. |
--잇다 | .git / sequencer의 정보를 사용하여 진행중인 작업을 계속 진행하십시오. 체리 피킹 실패 또는 되돌리기에서 충돌을 해결 한 후에 계속 사용할 수 있습니다. |
--떠나다 | 현재 진행중인 작업은 잊어 버려야합니다. 체리 피킹 또는 되돌리기 실패 후 시퀀서 상태를 지우는 데 사용할 수 있습니다. |
- 항아리 | 작업을 취소하고 사전 시퀀스 상태로 돌아갑니다. |
한 브랜치에서 다른 브랜치로 커밋 복사하기
git cherry-pick <commit-hash>
는 기존 커밋에서 변경된 내용을 다른 브랜치에 적용하면서 새로운 커밋을 기록합니다. 본질적으로 지점 간 커밋을 복사 할 수 있습니다.
주어진 다음 트리 (소스)
dd2e86 - 946992 - 9143a9 - a6fd86 - 5a6057 [master]
\
76cada - 62ecb3 - b886a0 [feature]
b886a0
을 마스터 ( 5a6057
상단)에 복사하려고한다고 가정 해 봅시다.
우리는 달릴 수있다.
git checkout master
git cherry-pick b886a0
이제 우리 나무는 다음과 같이 보일 것입니다 :
dd2e86 - 946992 - 9143a9 - a6fd86 - 5a6057 - a66b23 [master]
\
76cada - 62ecb3 - b886a0 [feature]
새로운 커밋 인 a66b23
은 b886a0
(하지만 다른 부모)과 같은 내용 (소스 diff, 커밋 메시지)을 b886a0
있습니다. 체리 피킹은 기능 브랜치의 모든 변경 사항이 b886a0
커밋 (이 경우 b886a0
변경 사항 만 선택합니다 (리베이스 또는 병합 중 하나를 사용해야 함).
한 브랜치에서 다른 브랜치로 커밋 범위 복사하기
git cherry-pick <commit-A>..<commit-B>
는 A 이후 의 모든 커밋 을 현재 체크 아웃 된 브랜치 맨 위에 B를 포함하여 배치합니다.
git cherry-pick <commit-A>^..<commit-B>
는 커밋 A와 현재 체크 아웃 된 브랜치의 맨 위에 B를 포함한 모든 커밋을 놓습니다.
체리 피크가 필요한지 확인하기
체리 - 선택 프로세스를 시작하기 전에, 체리 - 피킹하려는 커밋이 타겟 브랜치에 이미 존재하는지 확인할 수 있습니다.이 경우 아무 것도 할 필요가 없습니다.
git branch --contains <commit>
은 지정된 커밋을 포함하는 로컬 브랜치를 나열합니다.
git branch -r --contains <commit>
는 목록에 원격 추적 분기를 포함합니다.
업스트림에 아직 적용되지 않은 커밋 찾기
git cherry
명령은 아직 체리 피킹되지 않은 변경 사항을 보여줍니다.
예:
git checkout master
git cherry development
... 출력을 다음과 같이 조금보세요 :
+ 492508acab7b454eee8b805f8ba906056eede0ff
- 5ceb5a9077ddb9e78b1e8f24bfc70e674c627949
+ b4459544c000f4d51d1ec23f279d9cdb19c1d32b
+ b6ce3b78e938644a293b2dd2a15b2fecb1b54cd9
로되는 커밋 것을 +
아직에 체리 고른하지 않은 사람이 될 것입니다 development
.
통사론:
git cherry [-v] [<upstream> [<head> [<limit>]]]
옵션 :
-v SHA1 옆에 커밋 주제를 표시합니다.
<upstream> 상응하는 커밋을 검색하는 업스트림 브랜치. HEAD의 업스트림 브랜치가 기본값입니다.
<head> Working branch; 기본값은 HEAD입니다.
<limit> 커밋을 최대 (및 포함) 한도로보고하지 않습니다.
자세한 정보는 git-cherry 문서 를 확인하십시오.