Github - 在合并为拉取请求的一部分后清理分支
Github - Cleaning up branches after they're merged as part of a pull request
我正在努力改进围绕合并和整合更改的团队流程,并希望在 GitHub 中使用 Pull Requests 作为更好地管理更改的方法。
我对此的一个担忧是,我想确保在合并拉取请求后,删除已合并的分支(我希望保留提交,但我不希望我们的存储库被充满了很多不再需要的陈旧分支)。
完成此操作的最佳/最安全方法是什么(最好使用最少的步骤,因为步骤越多,遗忘的可能性就越大)。
通常当我在代码审查成功后将我的功能分支合并到 master 时,我 运行:
git branch -d <branch-name>
git push origin :<branch-name>
注意:推送时不要忘记分支名称前的:
。
第一个命令删除本地分支,第二个命令删除远程分支。
如果这成为团队中的普遍做法,您就会达到目标。
一种自动化的方法是使用 post-merge git hook,检查当前分支是否为主,从提交消息中获取分支名称,然后 运行 这两个命令我在上面写了。
在您的项目文件夹中创建一个文件
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
我正在努力改进围绕合并和整合更改的团队流程,并希望在 GitHub 中使用 Pull Requests 作为更好地管理更改的方法。
我对此的一个担忧是,我想确保在合并拉取请求后,删除已合并的分支(我希望保留提交,但我不希望我们的存储库被充满了很多不再需要的陈旧分支)。
完成此操作的最佳/最安全方法是什么(最好使用最少的步骤,因为步骤越多,遗忘的可能性就越大)。
通常当我在代码审查成功后将我的功能分支合并到 master 时,我 运行:
git branch -d <branch-name>
git push origin :<branch-name>
注意:推送时不要忘记分支名称前的:
。
第一个命令删除本地分支,第二个命令删除远程分支。
如果这成为团队中的普遍做法,您就会达到目标。
一种自动化的方法是使用 post-merge git hook,检查当前分支是否为主,从提交消息中获取分支名称,然后 运行 这两个命令我在上面写了。
在您的项目文件夹中创建一个文件
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