首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何查找已更改的唯一文件列表

问如何查找已更改的唯一文件列表
EN

Stack Overflow用户
提问于 2014-08-13 14:55:37
回答 2查看 1.2K关注 0票数 1

如何获得使用git更改的文件的唯一列表?我是专门寻找修改或添加的文件。

这个命令不错,但是它有点冗长--我不关心它是哪个提交的一部分,它也不是唯一的--如果同一个文件在多次提交中被更改,它会被列出两次。

代码语言:javascript
复制
git log --name-status --oneline

  • e5a7926变更测试用词 spec.rb/实体/代理_估价员_spec.rb
  • 7b2a81c实现自动替换功能 M/记分/实体/代理_估价者.lib spec.rb/实体/代理_估价员_spec.rb spec.rb/services/agent_估价_spec.rb
  • a5de237将unused_players添加到agent_evaluation规范 spec.rb/实体/代理_估价员_spec.rb spec.rb/services/agent_估价_spec.rb M/support/factory_helpers.rb
  • 重构代理服务规范 spec.rb/services/agent_service_spec.rb M/support/support_SERVER.rb

我在找这样的东西:

规范/实体/代理_评估器_spec.rb lib/评分/实体/代理_评估者。 规范/服务/代理评估_spec.rb 规范/支持/工厂_helpers.rb spec/services/agent_service_spec.rb spec/support/support_service_spec ..。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-08-13 14:58:45

目前无法将git日志限制为仅包含所有更改的文件名的列表,而无需查看提交历史记录。然而,你当然可以去掉那些你不关心的东西。例如:

代码语言:javascript
复制
git whatchanged --oneline --name-only |
    grep --extended-regexp --invert-match '^[[:xdigit:]]{7,}'

这将显示历史记录,包括每次提交中更改的文件名,然后egrep将删除所有提交ID和提交摘要。这只留下了在每次提交过程中更改的文件名列表,而没有相应的提交历史记录。

票数 2
EN

Stack Overflow用户

发布于 2014-08-13 16:35:36

类似于CodeGnome's answer,但略有不同:

代码语言:javascript
复制
git log --pretty=format: --name-only $more_options | grep . | sort -u

对于$more_options,您可能希望:

代码语言:javascript
复制
--diff-filter=M

或者:

代码语言:javascript
复制
--diff-filter=AM --no-renames

或者其他类似的东西。--diff-filter使用您在--name-status中看到的状态来抑制或包含特定的条目。(详细信息请参见 documentation。)因为这会为日志消息输出空行,即使使用--pretty=format: (一种空格式),所以我们将grep .加到只有至少一个字符的行中,然后通过sort -u运行生成的文件名,以获得uniq-ed结果。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25289469

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档