2010-07-30 56 views
5

我有一个文本文件(.yml),我输入了一些文本到我的系统中使用。但是现在我们需要知道什么是新线路。我想用git来解决我们的问题,但我找不到一个明确的命令来做到这一点。在第一次和最后一次提交之间在同一文件中使用git diff

这可能吗?

+0

的可能重复[混帐:如何diff的两个不同的提交间相同的文件在同一分支上(http://stackoverflow.com/questions/3338126/git diff-the-same-file-between-two-different-commit-on-the-the-the-branch) – 2010-07-30 15:07:38

回答

11

你可以得到提交列表withs像这样:

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

这应该是这样的:

commitD Description 
commitC Description 
commitB Description 
commitA Description 

选择你两次提交以下代替它们:

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

+0

解决了我的问题,thnx! – 2010-08-25 01:19:33

3
因为它颠倒了结果列表

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

它不工作与计数1使用--reverse(-1/--max数1)...:

你可以用一个命令行做截断它之后。因此,无论是使用 - 与head命令一起使用,还是使用tail -1。

我必须为我的用法添加-w,这是因为行结束符和制表符与空格用法中的开关。

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

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