使用所有远程分支更新所有本地分支
Update all local branches with all remote branches
如何用所有远程分支覆盖所有本地分支?
这是我当地的分支机构:
client-side-js-framework
client-side-js-framework-2
client-side-js-framework-3
handlebars
master
还有我的远程分支:
client-side-js-framework
handlebars
master
no-network-connection
我希望我的本地分支机构能够镜像我的远程分支机构,因为我的远程分支机构是最新的。也就是说,我当地的分行应该是:
client-side-js-framework
handlebars
master
no-network-connection
这可以用一个(或两个)命令完成,而不是基本上删除我的本地存储库,然后重新克隆它吗?
很有可能,你应该 运行:
git fetch origin
然后简单地删除(大部分或全部)本地分支。下次你运行,例如:
git checkout handlebars
您的 Git 将搜索您的本地名称 handlebars
,找不到它,再搜索一些以查看是否恰好有一个名称,例如 origin/handlebars
和 upstream/handlebars
依此类推(每个可能的遥控器一个)。
只要正好一个这样的名字,你的Git就会说:啊哈,我应该创建本地名字handlebars
使用 相同的提交 作为远程跟踪名称 origin/handlebars
. 在那一刻,您将获得一个名为 handlebars
的本地分支,该分支匹配 origin/handlebars
, Git 会检查出来,你就可以开始工作了。没有必要像 a set of balls-and-chains.
那样拖拉半打未处理的本地名称
如果您确实需要更新每个分支,则必须使用一个循环,每个分支使用一个更新命令来执行适当的合并和推送,除非它们都是快进的非真正合并操作,在这种情况下:
git fetch origin 'refs/heads/*:refs/heads/*'
会起作用——但不要这样做(参见链条link)。
(如果你做有多个使用相同名称的遥控器,这有点棘手。在这种情况下,git checkout --track origin/handlebars
将达到预期的结果。同时它也是让 git fetch
删除 本地名称是棘手且不明智的,但我认为可以使用 --prune
.)
基本上 git fetch origin
将更新您的本地分支并将额外的分支添加到您的本地存储库中,该分支可在远程上使用。
替代解决方案是
1. git checkout client-side-js-framework
2. git pull
就这些:)
如何用所有远程分支覆盖所有本地分支?
这是我当地的分支机构:
client-side-js-framework
client-side-js-framework-2
client-side-js-framework-3
handlebars
master
还有我的远程分支:
client-side-js-framework
handlebars
master
no-network-connection
我希望我的本地分支机构能够镜像我的远程分支机构,因为我的远程分支机构是最新的。也就是说,我当地的分行应该是:
client-side-js-framework
handlebars
master
no-network-connection
这可以用一个(或两个)命令完成,而不是基本上删除我的本地存储库,然后重新克隆它吗?
很有可能,你应该 运行:
git fetch origin
然后简单地删除(大部分或全部)本地分支。下次你运行,例如:
git checkout handlebars
您的 Git 将搜索您的本地名称 handlebars
,找不到它,再搜索一些以查看是否恰好有一个名称,例如 origin/handlebars
和 upstream/handlebars
依此类推(每个可能的遥控器一个)。
只要正好一个这样的名字,你的Git就会说:啊哈,我应该创建本地名字handlebars
使用 相同的提交 作为远程跟踪名称 origin/handlebars
. 在那一刻,您将获得一个名为 handlebars
的本地分支,该分支匹配 origin/handlebars
, Git 会检查出来,你就可以开始工作了。没有必要像 a set of balls-and-chains.
如果您确实需要更新每个分支,则必须使用一个循环,每个分支使用一个更新命令来执行适当的合并和推送,除非它们都是快进的非真正合并操作,在这种情况下:
git fetch origin 'refs/heads/*:refs/heads/*'
会起作用——但不要这样做(参见链条link)。
(如果你做有多个使用相同名称的遥控器,这有点棘手。在这种情况下,git checkout --track origin/handlebars
将达到预期的结果。同时它也是让 git fetch
删除 本地名称是棘手且不明智的,但我认为可以使用 --prune
.)
基本上 git fetch origin
将更新您的本地分支并将额外的分支添加到您的本地存储库中,该分支可在远程上使用。
替代解决方案是
1. git checkout client-side-js-framework
2. git pull
就这些:)