我使用的是关键字扩展,如书Pro Git中所述。但是,在提交之后需要做的事情,例如,
rm file
git checkout file
在工作文件中使用正确的关键字扩展(因为仅在结帐后应用污迹)。
如何在提交后自动进行关键字扩展?
当然,我可以使用钩子来删除/重新结账,但这似乎不是一个很好的解决方案。此外,我必须手动检查,提交了哪个文件。
有更优雅的方式吗?例如,我可以在提交后自动运行过滤器的污迹吗?
答案 0 :(得分:2)
如何在提交后自动进行关键字扩展?
你没有,这就是为什么Git不“真正”支持关键字扩展,因为我在“Git equivalent of subversion's $URL$
keyword expansion”中详述。
替代方案(在“Git hook, modify commit files”中列出)是使用git notes
将元数据附加到提交(不修改其SHA1)。
答案 1 :(得分:0)
我相信一个post-commit钩子确实可以解决你的问题。
添加以下post-commit hook:
#!/bin/sh
BRANCH=$( git branch | awk 'sub(/^\*[[:space:]]+/,""){print;exit}' )
git show --name-only -z --format= |
xargs -r0 git reset "${BRANCH:-master}" --