假设我们有这些分支机构:
我的本地仓库正在关注“ new_feature”。
其他人已将“ new_feature”合并到“ develop”上,并删除了服务器上的该分支(即“ new_feature”分支)。按预期完成该功能。
我想要一种自动/脚本化的方式来检测分支已被合并,目标分支,并在本地检出该分支(并删除本地的“ new_feature”分支)。
PS:在这种简化的情况下,可以放弃分支上的本地更改。
有人吗?
答案 0 :(得分:0)
我找到了部分解决方案。
检测是否进行拉动:
如果! git pull --all --prune;然后
该分支已被远程删除,因此不再存在引用。但是我们知道最新的本地信息以及该(本地)分支的最新提交。让我们看看这个提交在哪里被合并(感谢@joanis):
ORIGIN = $(git branch --remotes --merged“ HEAD” | grep -v HEAD)
提交可以出现两次,我们去掉了“-> HEAD”行。 我们需要找出名称:
BRANCH =“ $ {ORIGIN / origin /}”
BRANCH =“ $ {BRANCH // /}”
让我们转到新分支:
git结帐“ $ BRANCH” git pull
这种情况的限制是,如果有多个分支已合并到该分支中。该算法将按照“ git branch”列出的顺序选择其中的一个。