2013-04-17 2 views
22

이전 커밋에서 가져온 효과를 조사하기 위해 코드를 작업 복사본에 적용한 다음 코드를 사용하여 적용합니다.Reverse 커밋 적용 작업 복사본

패치를 만들고 적용하는 워크 플로로 관리했지만 더 쉽게 할 수 있는지 궁금합니다. 나는이 때문에 git revert 또는 git rebase -i보고 있지 않다

git checkout -b "tmp-fiddle" 
git diff -R -p d9fd2bb^ d9fd2bb > patch_to_examine.patch 
# Manually edit the patch a little 
git apply patch_to_examine.patch 

주 새로운 커밋 또는 역사를 변경 소개하는 것 중 하나 : 나는 단지로 d9fd2bb에 도입 된 변경하려는 나의 현재의 작업 복사본에 유엔을-적용했다.

+0

수동 편집은 무엇입니까? –

+0

패치가 제대로 적용되지 않았습니다. 공백에 대한 경고를 보냅니다. – berkes

답변

35

어때 대략 git revert -n?

-n 
--no-commit 

보통 명령이 자동으로 커밋이 복귀 된 진술 커밋 로그 메시지와 몇 가지 커밋을 생성합니다. 이 플래그는 명명 된 커밋을 작업 트리와 인덱스로 되돌리기 위해 필요한 변경 사항을 적용하지만 커밋을하지는 않습니다. 또한이 옵션을 사용하면 인덱스가 HEAD 커밋과 일치하지 않아도됩니다. 되돌리기는 색인의 시작 상태에 대해 수행됩니다.

이것은 여러 개의 커밋 효과를 인덱스의 인덱스로 되돌릴 때 유용합니다.

+1

아쉽게도이 작업은 작업 복사본에 커밋의 영향을받는 파일이 수정되지 않은 경우에만 작동합니다 (다른 파일에서도 변경 될 수 있음). 나는 그런 경우에'git stash; git revert -n ; git stash pop'을 실행하고 충돌을 해결합니다 (있는 경우). – arekolek

관련 문제