WordPress 기반 프로젝트를 작업 중이며 WP의 새 릴리스 버전마다 프로젝트를 패치하려고합니다. 이를 위해 두 커밋 또는 태그 사이에 패치를 생성하려고합니다.
예를 들어, 내 리포지토리에서 다음 /www/WP
을 수행합니다.
$git patch-format com1..com2 --stdout > ~/patchs/mypatch.patch
또는
$git patch-format tag1..tag2 --stdout > ~/patchs/mypatch.patch
/www/WP
자식 natif 워드 프레스
/www/myproject
내 자식 프로젝트 WordPress 기반
git apply
우리가 다른 저장소에 있기 때문에 작동하지 않습니다 커맨드 라인, 나는 생각한다.
커밋없이 패치 파일을 생성하고 차등으로 다른 git 저장소에 적용 할 수 있습니까?
미리 감사드립니다.
답변
다음에 적합한 통합 diffgit diff
를 생성하는 데 사용할 수 있습니다 .git apply
git diff tag1..tag2 > mypatch.patch
그런 다음 결과 패치를 다음과 같이 적용 할 수 있습니다.
git apply mypatch.patch
답변
여러 커밋에 대한 패치를 생성하려면 format-patch
git 명령 을 사용해야합니다.
git format-patch -k --stdout R1..R2
커밋을 메일 박스 형식의 패치 파일로 내 보냅니다.
마지막 커밋에 대한 패치를 생성하려면 다음을 실행하십시오.
git format-patch -k --stdout HEAD^
그런 다음 다른 저장소에서 am
git 명령으로 패치를 적용하십시오.
git am -3 -k file.patch
참조 : man git-format-patch
및 git-am
.
답변
하나의 특정 커밋에 대해서만 패치를 생성하려면 다음을 사용하십시오.
git format-patch -1 <sha>
패치 파일이 생성되면 다른 리포지토리가 사용중인 위치를 알고 있어야합니다. git am ${patch-name}
패치를 추가하기 전에 git apply --check ${patch-name}
확실하지 않은지 확인하십시오.