在远程服务器上创建本地git仓库的副本

34
我使用 git clone 从一个服务器克隆了一个项目,现在我想将它(包括所有分支)复制到另一个服务器上,以便其他人可以开始使用。我猜我可以手动复制整个存储库,然后发出 git config --bool core.bare true 命令并删除除 .git 文件夹之外的所有内容,但我认为那不符合“裸”存储库的要求,我担心这可能会给我带来问题。

我希望通过使用 git init --bare 创建新的远程存储库,并简单地将我的本地存储库推送到该存储库,但由于我最初是从另一个服务器克隆我的本地副本的,所以 origin 似乎阻止我这样做。

2个回答

50
  1. 在服务器上创建一个新的裸仓库:
    git init --bare newrepo.git
  2. 将其作为本地仓库的远程仓库添加:
    git remote add newrepo git://user@server.com/newrepo.git
  3. 执行git push newrepo master 命令来推送指定分支,或者执行git push --all newrepo 命令推送所有分支。

7
git push --all newrepo 应该就可以了。 - Greg Hewgill
我会定期回顾这篇文章。谢谢 :) - user592748
1
新手问题:我已经完成了所有操作,并成功地将其推送到远程。但是当我在服务器上检查 /newrepo.git 时,我没有看到文件。有人知道文件在哪里吗? - Orane
1
@orane:这是因为该仓库是使用 --bare 选项初始化的。如果没有使用此选项,代码将被提取并创建 .git 文件夹,其中包含存储库数据。在执行此命令后看到的只是存储库数据,而没有提取的代码。 - cube45

13

另一种方式是(正如您所希望的):

git clone --bare /path/to/repo newrepo.git

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接