在第一次和最后一次提交之间的同一文件中使用git diff

时间:2010-07-30 00:44:47

标签: git github git-diff

我有一个文本文件(.yml),我输入一些文本供我的系统使用。但现在我们需要立刻知道新的线路。我想用git来解决我们的问题,但我找不到明确的命令来做到这一点。

这可能吗?

2 个答案:

答案 0 :(得分:11)

您可以获得类似的提交列表:

git log --abbrev-commit --pretty=oneline

这应该是这样的:

commitD Description
commitC Description
commitB Description
commitA Description

选择您的两个提交并在下面替换它们:

git diff <commitA>..<commitB> -- /path/to/file

答案 1 :(得分:3)

您可以使用一个命令行执行此操作:

git diff -w `git rev-list HEAD --reverse | head -1`..HEAD -- <path/file>

使用--reverse计数为1(-1 / --max-count 1)...不起作用,因为它在截断后反转结果列表。因此,要么使用--reverse与head命令一起使用,要么使用tail -1。

由于行结尾和制表符与空格的使用,我不得不为我的用法添加-w。

如果在第一次提交中未添加文件,则可能无法正常工作!您可以将以上行更改为:

git diff -w `git rev-list HEAD --reverse -- <path/file> | head -1`..HEAD -- <path/file>