GIT:如何区分在拉后更改的文件与以前的版本?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (42)

当我运行“git拉”时,我经常想知道在文件的最后一个版本和新版本之间发生了什么变化。比如说我想知道别人对某个特定文件的承诺。

怎么做到的?

我假设它是“gitdiff”,其中包含了提交x和提交y的一些参数,但我似乎无法理解语法。我还发现“git日志”有点让人困惑,并且不确定从哪里获得我最新版本的文件的提交ID与新的提交ID。

提问于
用户回答回答于

我喜欢用:

git diff HEAD^

或者,如果我只想区分特定的文件:

git diff HEAD^ -- /foo/bar/baz.txt
用户回答回答于

有各种很好的方法来指定提交-请参阅指定修订分节man git-rev-parse更多细节。在这种情况下,可能希望:

git diff HEAD@{1}

@{1}意思是“我指定的参考文献的前一个位置”,因此评估结果是你之前签出的-就在拉手之前。你可以HEAD最后,如果你的工作树也有一些变化,你不想看到它们的不同之处。

我不知道你用“我的最新版本的文件的提交ID”(SHA 1散列)要求什么,就是git日志输出中每个条目顶部的40字符十六进制。它是整个提交的哈希,而不是给定文件的哈希。你不需要更多的东西--如果你想在拉的过程中只区分一个文件,那么做

git diff HEAD@{1} filename

这是一件普通的事情--如果想知道给定提交中的文件的状态,可以指定提交和文件,而不是特定于文件的ID/散列。

扫码关注云+社区