我在存储库中有一堆提交。我想看到两次提交之间更改的文件列表-从SHA1到SHA2。

我应该使用什么命令?


当前回答

以前的每一个答案最大的问题是,如果你想使用你试图从存储库中获取的信息,你会被送入一个寻呼机,这是非常令人讨厌的。特别是如果你是一个开发人员,宁愿学习你应该开发的应用程序的业务逻辑,而不是学习vim命令。

使用--没有寻呼机可以解决这个问题。

git --no-pager  diff --name-only sha1 sha2

其他回答

另外请注意,如果您只想查看上次提交和之前提交之间的更改文件,这很好:

git show --name-only

将以下别名添加到~/.bash_profile文件中,然后运行source~/.bah_profile;现在,您随时需要从git存储库中查看上次提交、运行和显示文件中的更新文件。

alias showfiles='git show --pretty="format:" --name-only'

基于gitdiff-name状态,我编写了gitdiffviewGit扩展,该扩展呈现了两个路径之间变化的层次树视图。

为了补充@artfurobot的答案,如果您想在两个分支之间显示更改的文件:

git diff --name-status mybranch..myotherbranch

注意优先顺序。如果您先放置较新的分支,那么它将显示文件已删除而不是已添加。

添加grep可以进一步细化:

git diff --name-status mybranch..myotherbranch | grep "A\t"

然后将只显示myotherbranch中添加的文件。

但是,如果看到文件在您的分支和它的共同祖先与另一个分支之间发生了更改(例如,origin/master):

git diff --name-only `git merge-base origin/master HEAD`