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

标签 git git-diff

假设我在存储库中有一个名为 LICENSE.txt 的文件。内容如下:

Copyright 2014 MyCompany. All Rights Reserved.

因为它是 2015 年,所以我更改了年份,所以它是 2015 年:

Copyright 2015 MyCompany. All Rights Reserved.

然后暂存文件

git add LICENSE.txt

由于有点分心,我对 LICENSE.txt 进行了另一个更改以反射(reflect)另一个组织共享版权。

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。

最佳答案

How do I compare the staged copy (the one with the year change) with working copy.
[...] I had the need to compare what I have staged with changes I subsequently made to the file

那仍然是 git diff

(由 OP 编辑​​:我如何比较提交的副本(年份变化的副本)与工作副本

那么它将是 git diff HEAD。)

http://images.abizern.org.s3.amazonaws.com/365git/Feb11/Git%20Diff%202.png

( 365git: Getting a diff between the working tree and other commits )

如果您正在寻找与 git diffdiff --cached 不同的东西,那么您会发现:

git diff HEAD

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

关于git - 如何使用git比较文件的工作副本、暂存副本和提交副本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30023405/

相关文章:

git - 语法高亮差异

git - 显示提交之间的差异

diff - 如何在 GitLab 中默认为并排 View

git - 如何在文本编辑器中查看 git diff?

git - 存储库的 ssh key - 无法建立。 ECDSA key 指纹

android - Git 预提交钩子(Hook)运行 lint 检查?

Git 克隆 : index-pack died of signal 25

git - 执行 git reset --hard head 后如何恢复我的提交?

.net - 用户如何从浏览器使用 GIT

git - 在 git diff 中自定义标题