是否有一个git diff选项告诉我在diff中更改的所有文件的相对名称?

时间:2015-04-01 00:29:14

标签: git

我经常发现自己想要打开在某个提交中更改的所有文件。我目前的解决方案就是这个,别名:

$EDITOR $(git diff --name-only --relative <commit names>)

哪个效果很好,但是当我在子目录中时,它不会打开在该目录之外更改的任何文件,因为git diff --name-only --relative只输出当前目录中更改的文件,而不是整个回购。是否有一个标记我可以传递给git diff以使其包含回购中的所有已更改文件,即使使用--relative

1 个答案:

答案 0 :(得分:1)

Git自己的aliases允许您通过使用前导感叹号定义别名来指定shell命令。这些shell命令别名总是从存储库根目录执行,因此您可以通过在.gitconfig中定义别名来将它们与您已经使用的命令结合使用:

[alias]
    review-diff = "!edit() { $EDITOR $(git diff --name-only --relative \"$@\"); }; edit"

然后,您可以从存储库中的任何位置运行git review-diff

(注意:我不确定版本差异何时,但是较新版本的Git似乎允许您跳过别名中的函数包装器,从而使设置更简单:)

[alias]
    review-diff = "!$EDITOR $(git diff --name-only --relative \"$@\")"