【问题标题】:Git to update all local branches according to the server sideGit根据服务器端更新所有本地分支
【发布时间】:2017-07-10 00:16:32
【问题描述】:

所以我

  • 将我的本地分支推送到 GitHub
  • 在 GitHub 上创建了拉取请求并
  • 成功合并并关闭了拉取请求并观看...
  • 删除分支在 GitHub 网站上使用“删除分支”按钮

现在,问题是,我没有找到下一步该做什么/如何做,而且无论我做什么,我的本地分支机构总是在那里。所以,

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

【问题讨论】:

    标签: git github git-branch branching-and-merging pull-request


    【解决方案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
    

    【讨论】:

    • 如果可以,请在脚本中使用git for-each-ref 而不是git branch。对于这种情况 (--merged),您需要 Git 版本至少为 2.7.0。
    【解决方案2】:

    如果您想在遥控器上完全一样,最好再次clone。但这不是一个好方法。

    您可以使用删除本地分支

    git branch -D BRANCH_NAME
    

    如果你想把合并后的分支放到本地,

    git pull origin BRANCH_NAME
    

    【讨论】:

    • 谢谢,“删除本地分支”,好的,但是“然后从远程获取那个分支”,嗯,为什么?远程分支已成功删除,远程服务器上不再存在。为什么需要这一步?
    • 我以为你想再次获取它。所以编辑了答案
    猜你喜欢
    • 2014-05-02
    • 2017-10-09
    • 2019-10-30
    • 2018-04-27
    • 2011-05-18
    • 2012-05-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多