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
'programing' 카테고리의 다른 글
| Active Workbook까지 기다립니다.Refresh All 완료(VBA) (0) | 2023.04.09 |
|---|---|
| PuTTY 세션목록을 내보내기 또는 Import하려면 어떻게 해야 합니까? (0) | 2023.04.09 |
| GitHub에서 커밋을 삭제하려면 어떻게 해야 하나요? (0) | 2023.04.09 |
| Windows 탐색기 "명령 프롬프트 여기" (0) | 2023.04.09 |
| 목표 C 클래스 -> 문자열: [NSArray className] -> @"NSArray" (0) | 2023.04.09 |