1

我有一个 git 存储库(实际上是一个 git-svn 存储库),我创建了一个新分支并进行了几次提交。在当地分支机构。现在我想获得分支上所有提交之间的差异。假设我在原始状态和当前状态之间有 5 次提交:

2792959ffd30fc54f56f82fa786b3bd9396e607a
c006fcd294957761dcced3c88760c357af1c3613
05d16d49def746b24f74e1306e16999f13e90027
2d87f52dbe82df507a29a725b0f954c6d7abfc82
66af1018d4f5621a7d021f98dc392e80ca826d35

然后,我想在 SVN 版本中列出每个提交之间的所有四 (4) 个单独差异(即,就好像您使用 svn diff 创建了差异一样)。

准确地说:我想看

  1. 每个提交的提交消息
  2. 已更改的各种文件中的差异
  3. 可选:git commit hash
4

3 回答 3

0

我想你可以简单地做

git log --full-diff $somehash..$otherhash

并且您可以使用HEADandHEAD^而不是完整的哈希来引用提交。

于 2013-07-08T16:13:56.890 回答
0

可能更好:

git show $somehash
于 2013-07-08T16:15:02.317 回答
0

要获取两个分支或两个提交之间发生变化的完整列表,您可以使用git whatchanged

IE

git whatchanged -p 66af1018d4f5621a7d021f98dc392e80ca826d35 2792959ffd30fc54f56f82fa786b3bd9396e607a

-p标志告诉 git 使用文本差异而不是十六进制差异。见https://www.kernel.org/pub/software/scm/git/docs/git-whatchanged.html

于 2013-07-08T16:12:09.573 回答