programing

git - 다른 분기의 커밋을 작업 복사본에 적용합니다.

instargram 2023. 6. 21. 22:11
반응형

git - 다른 분기의 커밋을 작업 복사본에 적용합니다.

그래서 나는 유용한 코드 변경이 있는 커밋이 있지만 다른 지점에 있습니다.

다른 분기의 이 커밋을 현재 분기의 작업 복사본(다른 커밋으로 적용하지 않음)에 적용하고 싶습니다.

이것이 가능합니까?어떻게 해야 하나요?

나는 이것을 내 이전 질문과 관련이 있지만 작업 복사본과 관련이 있다고 생각했습니다: git cherry는 다른 지점에 커밋 하나를 선택합니다.

원하는 커밋을 다른 분기에 추가하는 방법.

git cherry-pick <SHA-1>...<SHA-1> --no-commit

마스터 분기 끝에 있는 커밋에 의해 도입된 변경사항을 적용하고 이 변경사항을 사용하여 새 커밋을 만듭니다.

의 구문...커밋 범위입니다.시작(시작)부터 마지막 커밋까지 모든 커밋을 가져옵니다.단일 커밋에서 단일 SHA-1을 사용하려는 경우

enter image description here


cherry-pick순순히

기본적으로git cherry-pick 변경 사항을 커밋합니다. 따라서 모든 변경 사항을 커밋하지 않고 체리픽을 선택하려면 간단히 추가하십시오.-n깃발

이렇게 하면 충돌이 너무 많은 경우 변경 내용을 검토하고 원하는 경우 변경 내용을 수동으로 커밋하거나 중단할 수 있습니다.

git cherry-pick -n <hash>

cherry-pick합병 약속

커밋 대신 병합을 선택해야 하는 경우에는-m깃발

#
# In this case, we select the [1] first parent in the commit
# Use git show <hash> to see a list of available parents
# 
git cherry-pick -m 1 <hash> 

사용할 수 있는 모든 옵션에 대한 전체 설명서 읽기

여전히 사용할 수 있습니다.git cherry-pick지휘권git cherry-pick --help:

   -n, --no-commit
       Usually the command automatically creates a sequence of
       commits. This flag applies the changes necessary to
       cherry-pick each named commit to your working tree and the
       index, without making any commit. In addition, when this
       option is used, your index does not have to match the HEAD
       commit. The cherry-pick is done against the beginning state
       of your index.

그러니까 그냥.git cherry-pick -n <commitid>그리고 변경 사항이 작업 디렉토리에 적용되고 인덱스에 준비됩니다(예:git -a), 그러나 커밋되지 않습니다.

언급URL : https://stackoverflow.com/questions/36778375/git-apply-a-commit-on-another-branch-to-the-working-copy

반응형