迁移Git存储库,同时删除一些分支并保留其他分支

时间:2017-10-09 17:53:17

标签: git

我有一个git存储库,在源头有多个分支。这些分支中的一些是被意外推到远程的私人(个体)分支。我无法删除遥控器上的分支。即 - 无法运行git branch -d/-D <branch_name>

现在,这个git存储库需要迁移到新的存储库,但不需要私有和功能分支。

我唯一的选择是做以下事情吗?

  • 创建一个新的空存储库(R1)并在本地克隆存储库。
  • 在R1中克隆旧存储库(R1')。
  • git checkout <feature_branch>
  • git branch -d <feature_branch>
  • git push origin --delete <feature_branch>

还是有更好更聪明的方法吗?我需要摆脱这些功能和私人/个人分支中的大约20个。

1 个答案:

答案 0 :(得分:2)

  

我正在尝试将回购从gitolite迁移到gitlab

在GitLab端,您可以创建一个空的新仓库。

在Gitolite方面,您可以在本地克隆您的仓库,删除分支,然后更改其远程,并推回GitLab

cd /path/to/local/repo

git branch -rd origin/a_private_branch1
...
git branch -rd origin/a_private_branchn

创建local branch for each remaining remote branches

然后:

git remote set-url origin /url/to/new/gitlab/repo
git push --mirror