如何获得使用git更改的文件的唯一列表?我是专门寻找修改或添加的文件。
这个命令不错,但是它有点冗长--我不关心它是哪个提交的一部分,它也不是唯一的--如果同一个文件在多次提交中被更改,它会被列出两次。
git log --name-status --oneline我在找这样的东西:
规范/实体/代理_评估器_spec.rb lib/评分/实体/代理_评估者。 规范/服务/代理评估_spec.rb 规范/支持/工厂_helpers.rb spec/services/agent_service_spec.rb spec/support/support_service_spec ..。
发布于 2014-08-13 14:58:45
目前无法将git日志限制为仅包含所有更改的文件名的列表,而无需查看提交历史记录。然而,你当然可以去掉那些你不关心的东西。例如:
git whatchanged --oneline --name-only |
grep --extended-regexp --invert-match '^[[:xdigit:]]{7,}'这将显示历史记录,包括每次提交中更改的文件名,然后egrep将删除所有提交ID和提交摘要。这只留下了在每次提交过程中更改的文件名列表,而没有相应的提交历史记录。
发布于 2014-08-13 16:35:36
类似于CodeGnome's answer,但略有不同:
git log --pretty=format: --name-only $more_options | grep . | sort -u对于$more_options,您可能希望:
--diff-filter=M或者:
--diff-filter=AM --no-renames或者其他类似的东西。--diff-filter使用您在--name-status中看到的状态来抑制或包含特定的条目。(详细信息请参见 documentation。)因为这会为日志消息输出空行,即使使用--pretty=format: (一种空格式),所以我们将grep .加到只有至少一个字符的行中,然后通过sort -u运行生成的文件名,以获得uniq-ed结果。
https://stackoverflow.com/questions/25289469
复制相似问题