git - Github - 在合并后清理分支作为拉取请求的一部分
问题描述
我正在努力改进围绕合并和整合更改的团队流程,并希望使用 GitHub 中的拉取请求来更好地管理更改。
我对此的一个担忧是,我想确保在合并拉取请求后,删除已合并的分支(我希望提交保留,但我不希望我们的存储库充满很多不再需要的陈旧分支)。
完成此任务的最佳/最安全方法是什么(最好使用最少的步骤,因为步骤越多,被遗忘的可能性就越大)。
解决方案
通常,当我在成功的代码审查后将我的功能分支合并到 master 时,我会运行:
git branch -d <branch-name>
git push origin :<branch-name>
注意:推送时不要忘记:
分支名称前面的。
第一个命令在本地删除您的分支,第二个命令删除远程分支。
如果这成为团队中的常见做法,您将达到目标。
一种使其自动化的方法是使用合并后的 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
推荐阅读
- ios - 解开可选变量时意外发现 nil 但变量有值
- swift - 呈现和关闭模式视图控制器时如何保持选择集合视图单元格?
- powershell - 在我的组织的所有域中查找用户和组
- r - 如何从 dplyr::tbl 获得详细的数据库错误消息?
- sql - SQL在数据库中查找后代的网格位置
- ios - 交互 AudioBuffer.mData 以显示音频可视化
- android - 在 Android 中请求权限 | 无法解析符号 MY_PERMISSIONS_REQUEST_READ_CONTACTS
- javascript - 将数组合并到 forloop // 相同的模式
- apache - 使用 LDAP 授权的 Apache 客户端证书身份验证
- leaflet - 如何在 Ionic 3 应用程序中将动态高度传递给 Leaflet CRS 地图?