수색…


소개

cherry-pick은 커밋에서 소개 된 패치를 취하여 현재있는 지사에서 다시 적용하려고 시도합니다.

출처 : Git SCM Book

통사론

  • 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]

새로운 커밋 인 a66b23b886a0 (하지만 다른 부모)과 같은 내용 (소스 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 문서 를 확인하십시오.



Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow