我在 Ubuntu 10.04 (Lucid Lynx) 上使用 Git。

我已经向我的主人做了一些 promise 。

但是,我想了解这些提交之间的区别。他们都在我的主分支上。

例如:

commit dj374
made changes

commit y4746
made changes

commit k73ud
made changes

我想知道 k73ud 和 dj374 之间的区别。但是,当我执行以下操作时,我看不到我在 k73ud 中所做的更改。
git diff k73ud..dj374 > master.patch

最佳答案

尝试

git diff k73ud^..dj374

确保在结果差异中包含 k73ud 的所有更改。

git diff 比较两个端点 ( instead of a commit range )。
由于 OP 希望看到 k73ud 引入的更改,他/她需要区分 first parent commit of k73ud : k73ud^ (或 k73ud^1 or k73ud~ )。

这样,diff 结果将包括自 k73ud 父级以来的变化(意味着包括自 k73ud 本身的变化),而不是自 k73ud 以来引入的变化(1x1343141)。

您也可以尝试:
git diff oldCommit..newCommit
git diff k73ud..dj374

和(1 个空格,不能更多):
git diff oldCommit newCommit
git diff k73ud dj374

如果您只需要获取文件名(例如手动复制修补程序):
git diff k73ud dj374 --name-only

您可以将更改应用于另一个分支:
git diff k73ud dj374 > my.patch
git apply my.patch

关于git - 显示提交之间的差异,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3368590/

10-13 09:16