我正在围绕合并和合并变更来改善团队流程,并希望使用GitHub中的Pull Requests作为更好地管理变更的一种方式。
对此我的一个担心是,我想确保在合并请求请求之后,已被合并的分支被删除(我希望保留提交,但是我不希望我们的存储库被填充许多不再需要的陈旧分支。
完成此操作的最佳/最安全的方法是什么(最好使用最少的步骤,因为步骤越多,被遗忘的机会就越大)。
答案 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