提交后的git关键字扩展

时间:2014-02-24 08:29:09

标签: git filter commit

我使用的是关键字扩展,如书Pro Git中所述。但是,在提交之后需要做的事情,例如,

rm file
git checkout file

在工作文件中使用正确的关键字扩展(因为仅在结帐后应用污迹)。

如何在提交后自动进行关键字扩展?

当然,我可以使用钩子来删除/重新结账,但这似乎不是一个很好的解决方案。此外,我必须手动检查,提交了哪个文件。

有更优雅的方式吗?例如,我可以在提交后自动运行过滤器的污迹吗?

2 个答案:

答案 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}" --