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

在第一次和最后一次提交之间在同一文件中使用git diff,git,github,git-diff,Git,Github,Git Diff,我有一个文本文件(.yml),可以输入一些文本供系统使用。但现在我们需要马上知道新的生产线。我想用git来解决我们的问题,但我找不到一个明确的命令来做这件事 这是可能的吗?您可以通过以下方式获得提交列表: git log--abbrev commit--pretty=oneline 应该是这样的: commitD Description commitC Description commitB Description commitA Description 在下面选择两个提交并替换它们: git

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


这是可能的吗?

您可以通过以下方式获得提交列表:

git log--abbrev commit--pretty=oneline

应该是这样的:

commitD Description
commitC Description
commitB Description
commitA Description
在下面选择两个提交并替换它们:


git diff/path/to/file

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

git diff -w `git rev-list HEAD --reverse | head -1`..HEAD -- <path/file>
git diff-w`git rev list HEAD--reverse | HEAD-1`…HEAD--
使用计数为1的--reverse(-1/--max count 1)不起作用。。。因为它会在截断后反转结果列表。所以要么使用--reverse和head命令一起使用,要么使用tail-1

我不得不为我的用法添加-w,因为在行尾和制表符与空格的用法中存在切换

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

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