git 将所有分支从 repo1 推送到 repo2
git push all branches from repo1 to repo2
我已将 Repo1 从 github 克隆到我的本地。
然后使用 git remote add new-origin 命令添加了 Repo2 的 url。
Repo1 包含 100 个分支,所以我无法检查每个分支
我正在尝试使用 git push new-origin --all
将所有分支推送到 Repo2
但只有 Repo1 的 master 分支被推送到 Repo2。
如何在不检查 Repo1 的所有分支的情况下将 Repo1 的所有 100 个分支推送到 Repo2
注意:我不想使用裸仓库或镜像仓库
我认为它只会推送所有本地分支,所以我猜你必须首先检查所有origin
的分支然后推送它们。
这个有用吗?
git branch # should only show master
# check-out every single branch
git branch -a | grep origin | sed 's|remotes/origin/||' | xargs -I {} git checkout {}
git branch # should now show all branches
git push new-origin --all
(注意 - 这也会推送 origin
中没有的本地内容)
------评论后-也许试试这个-----
git branch -a | grep origin \
| sed 's|remotes/origin/||' \
| xargs -I {} git push new-origin origin/{}:refs/heads/{}
应该只列出原点上的所有分支,然后将它们全部推送到 new-origin
上具有相同名称的新分支
如果任何分支名称中有空格(如果可能),它可能无法工作。
要在尝试之前查看它会做什么,请将最后一行更改为:
| xargs -I {} echo git push new-origin origin/{}:refs/heads/{}
那你高兴了就去掉echo
,看看
我已将 Repo1 从 github 克隆到我的本地。 然后使用 git remote add new-origin 命令添加了 Repo2 的 url。
Repo1 包含 100 个分支,所以我无法检查每个分支
我正在尝试使用 git push new-origin --all
将所有分支推送到 Repo2但只有 Repo1 的 master 分支被推送到 Repo2。
如何在不检查 Repo1 的所有分支的情况下将 Repo1 的所有 100 个分支推送到 Repo2
注意:我不想使用裸仓库或镜像仓库
我认为它只会推送所有本地分支,所以我猜你必须首先检查所有origin
的分支然后推送它们。
这个有用吗?
git branch # should only show master
# check-out every single branch
git branch -a | grep origin | sed 's|remotes/origin/||' | xargs -I {} git checkout {}
git branch # should now show all branches
git push new-origin --all
(注意 - 这也会推送 origin
中没有的本地内容)
------评论后-也许试试这个-----
git branch -a | grep origin \
| sed 's|remotes/origin/||' \
| xargs -I {} git push new-origin origin/{}:refs/heads/{}
应该只列出原点上的所有分支,然后将它们全部推送到 new-origin
上具有相同名称的新分支如果任何分支名称中有空格(如果可能),它可能无法工作。
要在尝试之前查看它会做什么,请将最后一行更改为:
| xargs -I {} echo git push new-origin origin/{}:refs/heads/{}
那你高兴了就去掉echo
,看看