Github-在分支合并为拉取请求后清理分支

时间:2019-04-26 07:02:14

标签: git github branching-and-merging

我正在围绕合并和合并变更来改善团队流程,并希望使用GitHub中的Pull Requests作为更好地管理变更的一种方式。

对此我的一个担心是,我想确保在合并请求请求之后,已被合并的分支被删除(我希望保留提交,但是我不希望我们的存储库被填充许多不再需要的陈旧分支。

完成此操作的最佳/最安全的方法是什么(最好使用最少的步骤,因为步骤越多,被遗忘的机会就越大)。

1 个答案:

答案 0 :(得分:2)

通常,在成功检查代码后,将功能分支合并到master中时,我会运行:

git branch -d <branch-name>
git push origin :<branch-name>

注意:按下时,请不要忘记分支名称前的:

第一个命令在本地删除您的分支,第二个命令删除远程的分支。

如果这在团队中很常见,那么您就可以实现自己的目标。

一种自动化的方法是使用post-merge git hook,在其中检查当前分支是否为master,从提交消息中获取分支名称,然后运行我在上面编写的两个命令。

在项目文件夹中创建文件

touch .git/hooks/post-merge

并为其添加执行权限

chmod +x .git/hooks/post-merge

然后使用文本编辑器将其打开并添加以下内容:

#!/bin/sh

#---------------------------------
# Delete branch merged into master
#---------------------------------

# Define your master branch name
master="master"

currentBranch=$(git branch | grep \* | cut -d ' ' -f2)

if [ $currentBranch = $master ]; then
    branchToDelete=$(git rev-parse --abbrev-ref $(git show-ref | grep $(git rev-parse HEAD^2)| cut -d ' ' -f 2))
    if [ $branchToDelete != "" ]; then
        git branch -d $branchToDelete
        git push origin :$branchToDelete
    fi 
fi
exit 0