如何在子分支代码上合并两个GitHub分支时执行自定义脚本

piv4azn7  于 2023-05-21  发布在  Git
关注(0)|答案(1)|浏览(106)

我有一个场景,我在Github上有两个分支'Master'和'Dev'。我们在代码中定义了一些硬编码的环境变量,当我们将代码从“Dev”分支合并到“master”分支时,我们手动更改这些变量。
我们有一个shell脚本,我们在系统上的“master”分支代码上手动执行。
我们是否可以在GitHub中设置一个进程,当我们将合并/推送代码从'Dev'分支推送到'Master'时,该进程每次都会在'dev'分支代码上执行我们的自定义脚本?
如果可能的话,你能不能建议我们用哪种方法?

wpx232ag

wpx232ag1#

参见post-checkout钩子。例如:

#!/bin/bash
#
# 1: old ref
# 2: new ref
# 3: branch (1) or file (0)

BRANCH_NAME=$(git rev-parse --abbrev-ref HEAD)
IS_BRANCH=$3

if [ $IS_BRANCH -ne 0 ]; then
    echo "HEAD is $BRANCH_NAME"
    # do stuff for the appropriate branch
    # eg: `source $(git rev-parse --show-toplevel)/vars.sh`
fi

但是,由于你要做的是设置环境变量,并且这将在子shell中运行,这将不会影响你的git启动shell的环境。
但是,您可以在每个分支上拥有不同版本的文件,并在每次 checkout 后简单地源化该文件。也就是说,如果你创建了一个vars.sh文件,并且它在dev和master上是不同的,那么. vars.sh将为你所在的任何分支加载正确的变量。

相关问题