我在预提交挂钩中使用了以下shell脚本,以仅获取要在git中提交的cpp文件的修改行。但是它提供了更改了行数的整个文件。我如何只获取文件的更改行以进行预提交检查。
这是我使用的脚本:
changed_files=$(git diff-index --cached $against | \
grep -E '[MA] .*\.(c|cpp|cc|cxx)$' | cut -f 2)
[git diff
git diff
应该只向您显示分阶段的更改。
如果已暂存该文件(即已为--cached
,则可以使用git add
或git diff --staged
(都是同义词)。
如果您暂存了多个文件,则可以使用git diff --cached
指定要查看的文件。