在对本地工作区文件进行修改提交时,通常想对修改的文件进行一些验证,那么如何获取到 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
不获取变更文件中的新增和删除文件。
参考地址:链接