Far*_*rid 5 git github git-pull git-fetch
如何用所有远程分支覆盖所有本地分支?
这是我当地的分支机构:
client-side-js-framework
client-side-js-framework-2
client-side-js-framework-3
handlebars
master
Run Code Online (Sandbox Code Playgroud)
还有我的远程分支:
client-side-js-framework
handlebars
master
no-network-connection
Run Code Online (Sandbox Code Playgroud)
我希望我的本地分支能够镜像我的远程分支,因为我的远程分支更加最新。换句话说,我当地的分支机构应该是:
client-side-js-framework
handlebars
master
no-network-connection
Run Code Online (Sandbox Code Playgroud)
这可以通过一个(或两个)命令来完成,而不是基本上删除我的本地存储库并重新克隆它吗?
最有可能的是,你应该运行:
\n\ngit fetch origin\nRun Code Online (Sandbox Code Playgroud)\n\n然后简单地删除(大部分或全部)本地分支。下次运行时,例如:
\n\ngit checkout handlebars\nRun Code Online (Sandbox Code Playgroud)\n\n你的 Git 会搜索你的本地名称handlebars,找不到它,再搜索一些,看看是否有一个名称,如origin/handlebars等等upstream/handlebars(每个可能的远程名称都有一个)。
只要恰好有一个这样的名称,您的 Git 就会说:啊哈,我应该使用与远程跟踪名称相同的提交来创建本地名称。handlebarsorigin/handlebars 在那一刻,您将获得一个名为handlebars匹配的本地分支origin/handlebars,Git 将检查它,然后您就可以开始工作了。没有必要像一组球链一样拖着六个未使用的本地名称。
如果您确实需要更新每个分支,则必须使用循环,每个分支使用一个更新命令来执行适当的合并和推送,除非它们都是快进而非真正的合并操作,在这种情况下:
\n\ngit fetch origin \'refs/heads/*:refs/heads/*\'\nRun Code Online (Sandbox Code Playgroud)\n\n会工作\xe2\x80\x94,但不要这样做(参见球和链链接)。
\n\n(如果您确实有多个使用相同名称的遥控器,那就有点棘手了。在这种情况下,git checkout --track origin/handlebars将达到预期的结果。同时,让git fetch 删除本地名称也是棘手且不明智的,但我认为它可以用 来完成--prune。)
| 归档时间: |
|
| 查看次数: |
3829 次 |
| 最近记录: |