我正在使用关键字扩展,如书中Pro Git所述。然而,在提交后需要做的,例如,提交后git关键字扩展
rm file
git checkout file
有在工作文件正确的关键字扩展(因为涂抹只结账后适用)。
如何在提交后自动进行关键字扩展?
当然,我可以使用钩子去除/重新签出,但这似乎不是一个好的解决方案。此外,我将不得不手动检查,提交哪个文件。
有没有更优雅的方式?例如,我可以在提交后自动运行过滤器的污迹吗?
我正在使用关键字扩展,如书中Pro Git所述。然而,在提交后需要做的,例如,提交后git关键字扩展
rm file
git checkout file
有在工作文件正确的关键字扩展(因为涂抹只结账后适用)。
如何在提交后自动进行关键字扩展?
当然,我可以使用钩子去除/重新签出,但这似乎不是一个好的解决方案。此外,我将不得不手动检查,提交哪个文件。
有没有更优雅的方式?例如,我可以在提交后自动运行过滤器的污迹吗?
如何在提交后自动进行关键字扩展?
你不这样做,这就是为什么Git没有“真正”支持关键字扩展,正如我在“Git equivalent of subversion's $URL$
keyword expansion”中详细说明的那样。
另一种方法(列在“Git hook, modify commit files”中)是使用git notes
将元数据附加到提交(不修改其SHA1)。
我相信一个post-commit挂钩确实可以解决您的问题。
添加下面的post-commit钩子:
#!/bin/sh
BRANCH=$(git branch | awk 'sub(/^\*[[:space:]]+/,""){print;exit}')
git show --name-only -z --format= |
xargs -r0 git reset "${BRANCH:-master}" --
我理解上没有关键字扩展Git的理念。我使用“git svn”(用于编写tex文档)。直接使用subversion时我有关键字扩展;它用于将修订号添加到打印出来的PDF中以供参考。因此,我也希望在我的git世界中拥有它。 –
@DanielKrenn我明白了。我会推荐'git notes'来添加*你想提交的任何*信息。 – VonC