기능 분기에서 하나의 파일을 선택하여 master
으로 병합하고 병합이 중요하지 않은 경우 git checkout
을 사용합니다. 그러나 동일한 파일에 대한 새로운 변경 사항이 master
인 경우 체크 아웃 작업이 변경 사항을 덮어 씁니다.git checkout을 사용하여 파일 병합
내가 원하는 것은 기본적으로 파일의 변경 사항을 덮어 쓰지 않고 병합하는 것입니다. (그 목적과 반대되는 것처럼 보입니다.) 그것은 기본적으로 다음 단계를 수행해야합니다
git diff <sha1>..<sha2> > changes.patch
git apply changes.patch
물론,이 작업을 수행하려면 별칭을 만들 수도 있지만 git checkout
나를 위해이 작업을 수행 할 수 있는지보고에 특히 관심이 있어요.
이 경우에는'git cherry-pick'을 적용 할 때마다 별도의 파일을 이해하지 못하기 때문에이 명령을 사용하여 단일 파일의 변경 사항 만 가져올 수는 없습니다. 'git cherry-pick --no-commit ... '을 호출 한 다음 그 단일 파일을 제외한 모든 변경 사항을 수동으로 unstage 할 수 있지만 이것은 지저분합니다. 아마도'git diff' +'git apply' 경로보다 덜 복잡하지만 아마도 ... – kostix
diff/적용 예제 Robert도 개별 파일에 대한 변경 사항을 선택하지 않았으므로 cherry-pick이 수용 가능한 해결책이라고 생각했습니다. 커밋 내 개별 변경 사항을 체킹하는 것은 단지 두통을 요구하는 것입니다. 필자가 원하는 변경 사항이 실제로는 별도의 커밋에 포함되도록 지사 지점을 리베이스 할 것입니다. 그런 다음 커밋을 선택하십시오. – Grantovich
'git diff .. --path/file.cpp> file.patch'를 할 수 있습니다. 그래서 네, 하나의 파일 만 패치 할 수 있습니다. –