【发布时间】:2013-07-22 16:30:01
【问题描述】:
我正在尝试查看 git 中同一提交的两个修订版之间的差异。差异的差异,基本上。从我目前所读到的,这被称为“interdiff”。我已经阅读了几个关于如何创建 git 补丁的 interdiffs 的教程,但我无法让这些方法在我的特定情况下工作。
所以这是设置。我有两个不同的分支,每个分支都有略微不同的提交:
* 29e734f - (origin/feature_branch, new_commits) New commit 3 (69 minutes ago) <Ajedi32>
* b22ebea - New commit 2 (89 minutes ago) <Ajedi32>
* 09d42c2 - New commit 1 (2 hours ago) <Ajedi32>
| * 467e08f - (old_commits) Old commit 3 (4 weeks ago) <Ajedi32>
| * f2bf1cb - Old commit 2 (4 weeks ago) <Ajedi32>
| * 34a2187 - Old commit 1 (4 weeks ago) <Ajedi32>
|/
* 1b05a4a - (origin/base, base) Base commit (5 weeks ago) <Ajedi32>
在这个例子中,我想找到“旧提交 3”和“新提交 3”之间的差异。我尝试从这两个提交创建一个补丁文件并通过interdiff 实用程序运行它们,但我得到的只是:
1 out of 2 hunks FAILED -- saving rejects to file /tmp/interdiff-1.Kgwx8u.rej
interdiff: Error applying patch1 to reconstructed file
我不太确定这意味着什么,所以我现在有点卡住了。我从这里去哪里?
注意:我不是在这里寻找git diff old_commits new_commits。我不希望输出中包含对提交 1 和 2 的修订。
【问题讨论】:
-
哦,根据 OP 试图询问的内容,这可能与 this question 有关。
-
出于好奇,diff 的 diff 能为您带来什么?
-
@Shahbaz 你的意思是它有什么用?我使用它是为了让审查我的代码的人更容易看到我在响应之前的审查时所做的更改。 This page 是我遵循的教程之一。它在页面顶部附近有一个很好的解释为什么 interdiffs 是有用的。
-
@Shahbaz 或者你问如果我通过
diff命令运行差异内容会发生什么?在那种情况下,我不确定,但我怀疑它会很漂亮。 -
@mnagel 来自原始问题:“注意:我不是在这里寻找
git diff old_commits new_commits。我不希望输出中包含对提交 1 和 2 的修订。”因此,如果“旧提交 1”和“新提交 1”之间存在一些细微差别,我不希望包含这些更改。我在区分补丁,而不是仓库的状态。
标签: git