我正在寻找一个简单的 git
这个命令提供了一个格式良好的列表,列出了由散列(SHA1)提供的提交的所有文件,没有任何无关的信息。
我努力了:
git show a303aa90779efdd2f6b9d90693e2cbbbe4613c1d
虽然它列出了文件,但它还包含每个文件的不需要的差异信息。
还有另一个吗? git
命令只提供我想要的列表,这样我就可以避免从中解析它 git show
输出?
我正在寻找一个简单的 git
这个命令提供了一个格式良好的列表,列出了由散列(SHA1)提供的提交的所有文件,没有任何无关的信息。
我努力了:
git show a303aa90779efdd2f6b9d90693e2cbbbe4613c1d
虽然它列出了文件,但它还包含每个文件的不需要的差异信息。
还有另一个吗? git
命令只提供我想要的列表,这样我就可以避免从中解析它 git show
输出?
首选方式 (因为它是一个 水暖 命令;意味着是程序化的):
$ git diff-tree --no-commit-id --name-only -r bd61ad98
index.html
javascript/application.js
javascript/ie6.js
其他方式 (不太喜欢脚本,因为它是一个 瓷 命令;意味着面向用户)
$ git show --pretty="" --name-only bd61ad98
index.html
javascript/application.js
javascript/ie6.js
--no-commit-id
抑制提交ID输出。--pretty
参数指定一个空格式字符串,以避免开头的瑕疵。--name-only
参数仅显示受影响的文件名(Thanks Hank)。-r
参数是递归到子树如果要获取已更改文件的列表:
git diff-tree --no-commit-id --name-only -r <commit-ish>
如果要获取提交中的所有文件的列表,可以使用
git ls-tree --name-only -r <commit-ish>
我会假设的 gitk
不希望如此。在那种情况下,试试吧 git show --name-only <sha>
。
我个人使用的组合 --stat 和 - 一条线 随着 显示 命令:
git show --stat --oneline HEAD
git show --stat --oneline b24f5fb
git show --stat --oneline HEAD^^..HEAD
如果您不喜欢/想要添加/删除统计数据,则可以替换 --stat 同 --name只
git show --name-only --oneline HEAD
git show --name-only --oneline b24f5fb
git show --name-only --oneline HEAD^^..HEAD
最近我需要在两次提交之间列出所有已更改的文件。所以我使用了这个(也是* nix特定的)命令
git show --pretty="format:" --name-only START_COMMIT..END_COMMIT | sort | uniq
更新:或者正如Ethan在下面指出的那样
git diff --name-only START_COMMIT..END_COMMIT
运用 --name-status
还将包括每个文件旁边的更改(添加,修改,删除等)
git diff --name-status START_COMMIT..END_COMMIT
你也可以这样做
git log --name-only
您可以浏览各种提交,提交消息和更改的文件。
输入q以获取提示。
最简单的形式:
git show --stat (hash)
这更容易记住,它将为您提供所需的所有信息。
如果你真的只想要你可以添加的文件的名称 --name-only
选项。
git show --stat --name-only (hash)