我在Ubuntu 10.04 (Lucid Lynx)上使用Git。
我已经向我的主人许下了一些承诺。
但是,我想知道这些提交之间的区别。它们都在我的主分支上。
例如:
commit dj374
made changes
commit y4746
made changes
commit k73ud
made changes
我想知道k73ud和dj374的区别。然而,当我执行以下操作时,我无法看到我在k73ud中所做的更改。
git diff k73ud..dj374 > master.patch
Try
git diff k73ud^..dj374
确保将k73ud的所有变化都包含在结果差异中。
Git diff比较两个端点(而不是提交范围)。
因为OP想要看到k73ud引入的变化,他/她需要区分k73ud的第一个父提交:k73ud^(或k73ud^1或k73ud~)。
这样,差异结果将包括自k73ud父节点以来的更改(意味着包括来自k73ud本身的更改),而不是自k73ud以来引入的更改(直到dj374)。
你也可以试试:
git diff oldCommit..newCommit
git diff k73ud..dj374
And(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