5

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

这可能吗?

4

2 回答 2

11

你可以得到一个提交列表,如下所示:

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

应该是这样的:

commitD Description
commitC Description
commitB Description
commitA Description

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

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

于 2010-07-30T00:51:10.247 回答
3

您可以使用一个命令行来完成:

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

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

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

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

git diff -w `git rev-list HEAD --reverse -- <path/file> | head -1`..HEAD -- <path/file>
于 2011-05-20T16:23:40.833 回答