2013-09-03 4 views
1

git-svn을 사용하여 SVN 저장소에서 작업하고 있습니다. 내가 할 수있는 일 중 하나는 git diff의 리뷰 변경 사항과 모든 유용한 옵션입니다.여러 커밋의 변경 사항을 검토하십시오.

때로는 "진행중인 작업"변경 사항이 SVN에 위탁되므로 검토하기 전에 작업이 끝날 때까지 기다리고 싶습니다. 나는 끼어 들지 않는 커밋없이 이러한 모든 관련 변경 사항을 볼 수있는 git diff의 호출이 있는지 궁금합니다.

은 시각적으로, 내가 가진 :

* e00 yet more irrelevant stuff 
* a04 finish work 
* a03 more wip 
* d00 irrelevant stuff 
* a02 more wip 
* c00 other irrelevant stuff 
* a01 more wip 
* a00 start wip 
* b00 state of tree before wip starts 

내가 c00, d00, 또는 e00없이 a** 커밋의 누적 효과가 b00의 상단에 무엇을 볼 수 있어야합니다. git diff b00 a04에는 관련없는 변경 사항이 있습니다. git show a0{0,1,2,3,4}은 너무 많은 중간 잡음을냅니다.

현재 접근 방식과 마찬가지로 throw-away 분기를 만들지 않고도이 작업을 수행하고 싶습니다.

비슷한 질문 herehere.

답변

2

당신 변경 사항을 집계하기 위해 임시 장소가 필요하므로 현재 방법이 좋습니다. 하지만 당신은 자동으로 멀리 갈 수 있도록 무명 지점 (은 "분리 된 HEAD")을 사용할 수 있습니다

$ git checkout --detach b00 

(또는 --detach, a00^없이 : 어느 쪽이 든, b00와 현재 얻을뿐만 아니라 HEAD를 분리), 다음 정확히 이전과 같이 :

$ git cherry-pick a0{0,1,2,3,4} 
$ git diff master... 
$ git checkout master 

및 완료 : 삭제할 분기가 없습니다.

0

내가 지금까지 가지고 올 것 중에 최고는 이것이다 :

git checkout -b review-temp a00^ 
git cherry-pick a0{0,1,2,3,4} 
git diff master... 
git checkout master 
git branch -D review-temp 

가 (. 다른 대안이 발생하지 않는 경우 내가 그것을 받아 들일 수 있도록 내가 대답으로이 게시 한)

관련 문제