2017-02-20 24 views
2

所以我的Git根据服务器端

  • 把我当地分公司到GitHub的
  • GitHub上
  • 创建拉请求和
  • 成功合并,并关闭了拉请求,并更新所有地方分公司看这个...
  • 删除分支在GitHub网站使用“删除支线”按钮

现在的问题是,我没有发现什么/如何做下了,不管我做什么,我的本地分行是永远存在的。所以,

如何让git准确地镜像服务器上有哪些分支,删除所有不存在的分支。或者,如果我必须自己做,我需要做什么步骤?谢谢。

回答

1

删除是在远程已经删除了远程分支参考。

$ git remote prune origin 

删除被合并到当前分支

$ git branch --merged | grep -v '*' | xargs git branch -d 

注意的地方分支机构:如果你不在master然后本地/主机可以被删除。如果你想保留master分支。

$ git branch --merged | grep -v "\*" | grep -Ev "(\*|master)" | xargs -n 1 git branch -d 
+0

如果可以,在脚本中使用'git for-each-ref'而不是'git branch'。对于这种情况('--merged'),你需要你的Git版本至少为2.7.0。 – torek

0

如果你想在遥控器上完全一样,那么再比clone更好。但这不是一个好的方法。

可以使用

git branch -D BRANCH_NAME 

删除您当地的分支机构。如果你想获得合并分支到本地,

git pull origin BRANCH_NAME 
+0

谢谢,“*删除本地分支*”,好,但“*然后从远程*获取该分支”,嗯,为什么?远程分支已成功删除并且不再存在于远程服务器上。为什么这一步有必要? – xpt

+0

我以为你想再次取回。编辑答案 – DilumN