如何使用git比较文件的工作副本、暂存副本和提交副本

roejwanj  于 2023-09-29  发布在  Git
关注(0)|答案(2)|浏览(123)

假设我在存储库中有一个名为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。

oalqel3c

oalqel3c1#

*git diff-比较工作区和索引。
*git diff --staged-比较stage area和repository。
*git diff HEAD-比较工作区和仓库

为了说明这一点,我更改了一个带有“Name Staged”文本的文件,然后添加了它(git add .)。之后,我再次更改了文件,现在我将文本替换为“Name Working Area”,然后运行以下命令:

yzuktlbb

yzuktlbb2#

如何将暂存副本(更改了年份的副本)与工作副本进行比较。
[...]我需要将我所暂存的内容与我随后对文件所做的更改进行比较
它仍然是git diff
(edit by OP:如何比较 committed 副本(有年份更改的副本)和工作副本
所以它是git diff HEAD

365git: Getting a diff between the working tree and other commits
如果您正在寻找与git diffdiff --cached不同的东西,那么您可以:

git diff HEAD

也就是:已经提交的版本和工作树之间的差异。

相关问题