gpt4 book ai didi

git - 如何将整个 git 存储库移动到其他地方?

转载 作者:太空狗 更新时间:2023-10-29 14:00:58 25 4
gpt4 key购买 nike

我们在 GitHub 上有一堆存储库,我们想完全切换到另一个提供商。我是 Mercurial 粉丝,所以我不太熟悉 Git 分支,不幸的是,在克隆 git 存储库时,你必须指定一个分支,否则它将克隆主分支(如果我在这里没有完全错的话)。

为了更具体地举个例子,假设我们有一个名为 hello 的项目,它有几个分支(mastera , b)。我想移动它,然后通过删除原始存储库继续在新存储库中工作。

所以我们有这个存储库:

git@github.com:lipis/hello.git

我们想将其移动到:

ssh://lipis@lipis.kilnhg.com/lipis/hello

由于我们有 40 多个不同的项目,而且其中许多项目都有不同的分支,我的问题是我如何才能将这些存储库中的每一个(连同所有分支)完全移动到另一个存储库,而不需要为每个项目 pull 和推送单独的分支?


最好有一些像这样的程序:

$ git clone git@github.com:lipis/hello.git
$ cd hello
# some black git magic that only Linus understands..
# continue working with the newest repository only

最佳答案

git clone 不会克隆特定的分支,它会克隆所有分支,然后 check out master。

最简单的方法是使用 --mirror 将存储库推送到新位置。你也可以从另一边克隆。您也可以只复制该文件夹。

为了详细说明 git clone 的工作原理,假设我们从一个存储库 origin 克隆,该存储库具有分支 masterab。然后在新的仓库中我们得到分支 master, origin/master, origin/a, and origin/b,我们可以像 git branch a origin/a 这样分支,以在新存储库中获取我们自己的 a 副本。

可能很难从 github 存储库中推送,因此您可能应该只使用 git clone --mirror(它会自动为我们设置所有引用)。这是假设您可以完全访问您的 ssh 服务器。如果没有,您应该从第 3 台机器 git clone --mirror 然后 git push --mirrorssh 服务器。

关于git - 如何将整个 git 存储库移动到其他地方?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15999128/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com