Git 如何获取不同类型修改的文件

679 阅读1分钟

在对本地工作区文件进行修改提交时,通常想对修改的文件进行一些验证,那么如何获取到 git 修改的文件呢?

代码

这里直接使用 git diff 即可以获取到我们想要的数据。

更多配置以及如何筛选获取到的文件呢?

--name-only 仅显示已更改文件的名称。可以用在在脚本中获取到修改的文件名,然后通过文件名拿到文件,对文件内容进行验证。

--diff-filter 对 git diff 中的文件进行筛选:

  • A :添加
  • C:复制
  • D: 删除
  • M:修改
  • R:重命名
  • T:更改类型(即常规文件、符号链接、子模块……)的文件
  • U:未合并
  • X:未知
  • B:配对已损坏
  • *:所有 比如这条命命:
git diff --name-only --diff-filter=AM

只获取到添加以及修改的变更文件,不包含删除的文件,避免之后的脚本对已删除的文件进行操作。

还需要注意的是这些字母的小写模式下是筛除操作,比如:

git diff --name-only --diff-filter=ad

不获取变更文件中的新增和删除文件。

参考地址:链接