카테고리 보관물: Git

Git

자식 저장소에서 패치 또는 diff 파일을 만들어 다른 다른 자식 저장소에 적용하십시오. > ~/patchs/mypatch.patch 또는 $git patch-format tag1..tag2 –stdout > ~/patchs/mypatch.patch /www/WP

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-patchgit 명령 을 사용해야합니다.

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

커밋을 메일 박스 형식의 패치 파일로 내 보냅니다.

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

git format-patch -k --stdout HEAD^

그런 다음 다른 저장소에서 amgit 명령으로 패치를 적용하십시오.

git am -3 -k file.patch

참조 : man git-format-patchgit-am.


답변

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

git format-patch -1 <sha>

패치 파일이 생성되면 다른 리포지토리가 사용중인 위치를 알고 있어야합니다. git am ${patch-name}

패치를 추가하기 전에 git apply --check ${patch-name}확실하지 않은지 확인하십시오.


답변