是否有内置方式(或简单脚本)不允许我检查是否有任何子模块修改了文件?就目前而言,我有无用的提交,因为我无法返回子模块的状态。
问问题
194 次
2 回答
2
感谢 VonC 解释我需要做什么。对不起,我不知道 Bash,所以这里是 Ruby 版本。完美运行(到目前为止,在所有情况下都使用 git 版本 1.7.9.4 进行了测试):
#!/usr/bin/env ruby
# http://stackoverflow.com/questions/12648585/git-should-not-checkin-if-submodule-has-modified-files
# October 1, 2012
# call this file pre-commit, make it executable and put it in .git/hooks
puts "Git pre-commit hook by Dan Rosenstark (yar)"
gitDiff = `git diff`
gitDiffWithSubmodules = `git diff --ignore-submodules`
if (gitDiff.length == gitDiffWithSubmodules.length)
puts "Submodules are clean, going right ahead!"
else
puts "One or more submodules are dirty, can't commit.'"
exit 1
end
于 2012-10-01T23:27:16.200 回答