将 GitHub repo 的所有分支迁移到新位置仅发送 Master 作为每个 origin/<branch>

Migrating all branches of GitHub repo to new location sends just Master as each origin/<branch>

我很高兴能够迁移多个存储库,但后来发现我的分支都是 master。对我的错误有什么想法吗?这是我迁移的过程,特别是从 GHE 到 GH 帐户。

git clone <GHE repository>
cd <repository name>
for remote in `git branch -r | grep -v '\->'`; do git branch --track $remote; done

git remote set-url origin <public GH repository>.git

git push -u --all origin

我显然正在尝试跟踪和迁移所有分支,如果我要求太多,如果这是一个问题修复,我们可以一次做一个。

为了简化步骤,我使用了...

git push --all origin

和...

git push --mirror origin

只有主推到 GitHub。 --mirror 确实清理了复制 master 的坏分支。

因此,在与团队进行一些调查后,如果所有人都同意,这看起来是一个干净的迁移过程...

git clone <orig repository>
cd <repository name>
for i in `git branch -a | grep remote`; do git branch --track ${i#remotes/origin/} $i; done

3) 将您的本地副本来源更改为新位置

git remote set-url origin <new repository>

4) 将其推送到新存储库(作为旧存储库的镜像)

git push --mirror

在我接受之前,我会考虑修改和更好的做法(如果存在的话)。