查看多次提交的更改

时间:2013-09-03 21:03:43

标签: git git-svn

我使用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之上,没有c00d00或{{1} }。 e00有无关的变化。 git diff b00 a04给出了太多的中间噪音。

我希望能够在不创建一个抛弃分支的情况下做到这一点,就像我目前的做法一样。

类似问题herehere

2 个答案:

答案 0 :(得分:2)

您确实需要一个临时位置来聚合更改,因此您当前的方法很好。但您可以使用未命名的分支(“分离的HEAD”)使其自动消失:

$ git checkout --detach b00

(或没有--detacha00^:无论哪种方式,最后获得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

(我已将此作为答案发布,因此如果没有其他替代方案,我可以接受。)