假设我在存储库中有一个名为LICENSE.txt的文件。内容如下所示:
Copyright 2014 MyCompany. All Rights Reserved.
因为2015年我改变了年份,所以是2015年:
Copyright 2015 MyCompany. All Rights Reserved.
然后伪造了文件
git add LICENSE.txt
由于有点分心,我对LICENSE.txt做了另一个更改,以反映另一个组织共享版权。
Copyright 2015 MyCompany and Affiliates. All Rights Reserved.
Copyright 2015 Other Company. All Rights Reserved.
我可以通过运行以下命令来查看工作副本和暂存副本之间的差异:
git diff
我可以通过运行以下命令来查看暂存拷贝和提交拷贝之间的区别
git diff --cached
如何比较提交的副本(没有年份更改的副本)和工作副本(具有附加版权的副本)?
这纯粹是一个例子。在一些更复杂的情况下,我需要将我已经暂存的内容与我随后对文件所做的更改进行比较。比较工作副本和暂存副本的内容将确定是否应替换暂存副本。
我在Windows Server 2012 R2上运行git 1.9.5。
2条答案
按热度按时间oalqel3c1#
*git diff-比较工作区和索引。
*git diff --staged-比较stage area和repository。
*git diff HEAD-比较工作区和仓库
为了说明这一点,我更改了一个带有“Name Staged”文本的文件,然后添加了它(git add .)。之后,我再次更改了文件,现在我将文本替换为“Name Working Area”,然后运行以下命令:
yzuktlbb2#
如何将暂存副本(更改了年份的副本)与工作副本进行比较。
[...]我需要将我所暂存的内容与我随后对文件所做的更改进行比较
它仍然是
git diff
。(edit by OP:如何比较 committed 副本(有年份更改的副本)和工作副本
所以它是
git diff HEAD
。(365git: Getting a diff between the working tree and other commits)
如果您正在寻找与
git diff
和diff --cached
不同的东西,那么您可以:也就是:已经提交的版本和工作树之间的差异。