programing

git diff 파일을 어떻게 가져와 같은 저장소의 복사본인 로컬 브랜치에 적용합니까?

easyjava 2023. 4. 9. 22:29
반응형

git diff 파일을 어떻게 가져와 같은 저장소의 복사본인 로컬 브랜치에 적용합니까?

동료가 작성한 .diff 파일을 가지고 있는데, 그 diff 파일에 기재되어 있는 변경을 같은 저장소의 로컬 브랜치에 적용하고 싶습니다.이 diff 파일을 생성하는 데 사용된 작업자의 PC 또는 지점에 액세스할 수 없습니다.

한 줄 한 줄 다시 입력할 수 있지만 시스템에 인위적인 오류는 피하고 싶습니다.가장 쉬운 방법은 무엇일까요?

diff 파일을 저장소의 루트에 복사한 후 다음을 수행합니다.

git apply yourcoworkers.diff

의 상세apply명령어는 man 페이지에서 사용할 수 있습니다.

참고로 파일별로 커밋 전체를 교환하는 더 좋은 방법은 명령어 조합입니다.git format-patch송신자 및 그 다음에git am인증 정보와 커밋메시지도 전송되기 때문에, 수신측에서 송신됩니다.

패치 어플리케이션에 장애가 발생하여 diff가 생성된 커밋이 실제로 repo에 있는 경우,-3의 선택사항apply머지를 시도합니다.

또한 다음과 같이 Unix 파이프와 함께 작동합니다.

git diff d892531 815a3b5 | git apply

patch 명령어도 사용할 수 있을 것 같습니다.저장소 루트에 diff를 넣고 실행합니다.patch명령줄을 사용합니다.

patch -i yourcoworkers.diff

또는

patch -p0 -i yourcoworkers.diff

를 사용하지 않고 diff를 작성한 경우 선행 폴더 구조를 제거해야 할 수 있습니다.--no-prefix.

이 경우 다음 명령을 사용하여 해당되지 않는 폴더 부분을 제거할 수 있습니다.

patch -p1 -i yourcoworkers.diff

-p(n)는 삭제할 폴더 구조의 일부를 나타냅니다.

패치 작성 및 적용에 대한 자세한 내용은 여기를 참조하십시오.

를 사용할 수도 있습니다.

git apply yourcoworkers.diff --stat 

디폴트로는 diff 가 변경을 적용하는지 여부를 확인합니다.패치가 올바르게 적용되지 않은 경우(다른 폴더 구조)에 영향을 받는 파일이 0이라고 표시될 수 있습니다.

언급URL : https://stackoverflow.com/questions/12320863/how-do-you-take-a-git-diff-file-and-apply-it-to-a-local-branch-that-is-a-copy-o

반응형