programing

git 저장소에서 패치 또는 diff 파일을 생성하여 다른 git 저장소에 적용

newstyles 2023. 6. 3. 08:18

git 저장소에서 패치 또는 diff 파일을 생성하여 다른 git 저장소에 적용

저는 WordPress 기반 프로젝트에서 일하고 있으며 WP의 새 버전마다 프로젝트를 패치하고 싶습니다.이를 위해 두 커밋 또는 태그 사이에 패치를 생성하고 싶습니다.

예를 들어, 나의 레포에서./www/WP사용자 작업을 수행합니다.

$ git patch-format com1..com2 --stdout > '~/patchs/mypatch.patch'

# or

$ git patch-format tag1..tag2 --stdout > '~/patchs/mypatch.patch'

/www/WPgit natif 워드프레스

/www/myproject나의 git 프로젝트 워드프레스 기반

git apply서로 다른 저장소에 있기 때문에 명령줄이 작동하지 않습니다.

커밋 없이 차등 패치 파일만 생성하여 다른 git 저장소에 적용할 수 있습니까?

그냥 사용할 수 있습니다.git diff적합한 통일된 차이를 만들어 내다git apply:

git diff tag1..tag2 > mypatch.patch

그런 다음 다음을 사용하여 결과 패치를 적용할 수 있습니다.

git apply mypatch.patch

여러 커밋에 대한 패치를 생성하려면 다음을 사용해야 합니다.format-patchgit 명령(예:

git format-patch -k --stdout R1..R2

커밋을 편지함 형식의 패치 파일로 내보냅니다.

마지막 커밋에 대한 패치를 생성하려면 다음을 실행합니다.

git format-patch -k --stdout HEAD~1

그런 다음 다른 리포지토리에서 패치를 적용합니다.amgit 명령(예:

git am -3 -k file.patch

및 를 참조하십시오.

두 가지 명령을 적용할 수 있습니다.

  1. git diff --patch > mypatch.patch패치를 생성하기 위해
  2. git apply mypatch.patch패치를 적용하기 위해

하나의 특정 커밋에 대해서만 패치를 생성하려면 다음을 사용합니다.

git format-patch -1 <sha>

패치 파일이 생성되면 사용할 때 다른 담당자가 패치 파일의 위치를 알고 있는지 확인합니다.git am ${patch-name}

패치를 추가하기 전에git apply --check ${patch-name}충돌이 없도록 하기 위해서입니다.

현재 있는 하위 디렉터리에 대해서만 패치를 수행할 수 있습니다.그냥 추가.

git format-patch -k b365cce8..80a2c18a .

그런 다음 다음을 적용할 수 있습니다.

git am *.patch

자세한 내용은 이 답변을 참조하십시오.

이 명령을 사용합니다.

git diff master..localbranch > file.patch

언급URL : https://stackoverflow.com/questions/28192623/create-patch-or-diff-file-from-git-repository-and-apply-it-to-another-different