3

我正在使用git-svnSVN 存储库。我想做的一件事是审查更改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**提交的累积效果在b00c00d00e00. git diff b00 a04有不相关的变化。 git show a0{0,1,2,3,4}产生过多的中间噪音。

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

类似的问题在这里这里

4

2 回答 2

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

你就完成了:没有要删除的分支。

于 2013-09-04T00:09:40.753 回答
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

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

于 2013-09-03T21:03:42.883 回答