【问题标题】:How to automatically add the commit message details to the checked in file location如何自动将提交消息详细信息添加到签入的文件位置
【发布时间】: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 logpull the commit message 的几个选项。可能比尝试弄乱存储库中的提交后挂钩和其他文件更容易。

标签: git


【解决方案1】:

我终于找到了一个 post-commit 钩子并根据我的要求对其进行了修改,它完美地工作了。

#!/bin/sh
path="D:/temp.txt"
git diff HEAD~1 --name-only > ${path}
if ! test ${GIT_BYPASS_POST_COMMIT+set}
then
    export GIT_BYPASS_POST_COMMIT=1
    for line in `cat $path`; do
        if [[ ! $line =~ version.txt ]];then
            file_path=`dirname $line`
            git show --format=%B -s | cut -d '#' -f2 > ${file_path}/version.txt
            echo " - " >> ${file_path}/version.txt
            echo $line >> ${file_path}/version.txt
            git add ${file_path}/version.txt
        fi  
    done    
    git commit --amend -C HEAD
fi

最初它将捕获提交期间更改的所有文件,并将保存到文件中。 现在这将读取文件列表中不包括 version.txt 文件的每个文件,并将添加包含 "commit message - file name" 的 version.txt 它会再次提交到最后一次提交。

注意:如果特定目录发生变化,这些目录将添加版本文件。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-03
    • 2022-04-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多