【发布时间】:2017-05-16 13:28:07
【问题描述】:
我正在使用 Git 作为版本控制系统。
我们要求将提交消息添加到新文件中并放置在父文件夹中。
例如:如果新文件位于 /pr/ab/cd/ef/a.java 位置。应创建一个文件并将其与提交消息一起放置在“ef”文件夹中。
我曾尝试使用挂钩来达到此目的,但它不起作用。
我在 commit-msg/pre-commit-msg 模板中使用过它,如下所示。
列出未跟踪的文件-->
git ls-files --others --exclude-standard > D:/temp.txt
if [ -f D:/temp.txt ] ; then
for line in `cat D:/temp.txt`;
do
if [ -f $line ] ; then
cp_path=`dirname $line`
echo `date +%d/%m/%Y:%H:%M`-$1-$line >> ${cp_path}/version1.txt
fi
done
fi
当它使用 git bash 而不是钩子创建为 shell 脚本时,它可以正常工作。
我正在尝试在使用 TortoiseGit 添加/提交任何新签入时自动完成这项工作。
请指导我。
【问题讨论】:
-
出于好奇,为什么你想这样做?为什么提交消息不能只存在于 git 存储库中?您是否也希望将这个新文件也添加到 git 中?
-
我们有 2 个独立的分支,一个用于发布,一个用于开发。在开发版本中,我正在构建那些签入的文件并将其添加到测试系统中进行部署。对于发布分支,我需要将整个内容用于构建并将其放置以进行部署。由于我正在获取全部内容,因此我无法捕捉到所做的更改。我需要去 git 并检查日志以查看所做的更改。所以想通过将签入的文件添加到文件中来自动添加这样的内容。
-
一个想法:获取进入部署的提交的哈希列表,然后为每个哈希使用
git log和pull the commit message 的几个选项。可能比尝试弄乱存储库中的提交后挂钩和其他文件更容易。
标签: git