我使用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
我希望能够看到a**
提交的累积效果在b00
之上,没有c00
,d00
或{{1} }。 e00
有无关的变化。 git diff b00 a04
给出了太多的中间噪音。
我希望能够在不创建一个抛弃分支的情况下做到这一点,就像我目前的做法一样。
答案 0 :(得分: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
你已经完成了:没有要删除的分支。
答案 1 :(得分: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
(我已将此作为答案发布,因此如果没有其他替代方案,我可以接受。)