Git初始化远程仓库。

7

我按照这篇文章建立了一个远程 git 仓库。

不是从头开始,

  1. 我在我的 PC1 上进行了一些开发(使用 git init 创建了仓库)
  2. 现在,我想把仓库移到同一子网的服务器上

    ssh git@example.com
    mkdir my_project.git
    cd my_project.git
    git init --bare

  3. 然后,在本地操作

    cd my_project
    git remote add origin git@example.com:my_project.git
    git push -u origin master

现在,在远程仓库(服务器)上,我看到这些文件夹

branches config description HEAD hooks info objects refs

我原本期望/希望看到与本地(PC1)git 仓库相同的内容

bin doc src


1
我认为你不理解 --bare 选项的作用。 - Chris Eberle
2
在你的本地代码仓库中,浏览一下 .git 文件夹。这里是 git 存储仓库信息的地方,也是服务器存储仓库信息的地方。它没有工作目录,只存储仓库信息-即 .git 文件夹的内容。 - simont
2个回答

8

您在远程端初始化了一个裸库,这意味着它存储了历史记录,但没有工作目录(翻译--没有实际检出项目)。您看到的结构很正常。


谢谢Chris。所以,如果我在第二步(服务器端)省略init,它会按预期工作吗?这是正确的方法,使服务器存储库镜像我的本地存储库。 - bsr
我不建议你在没有 --bare 的情况下运行它。原因是这样的:假设你在某个远程客户端上进行了更改,然后将其推送到服务器。你会期望服务器上的工作目录自动更新。但事实并非如此。由于这个原因,事情可能会变得混乱。相反,我建议你简单地习惯于中央服务器应该是裸的这个想法,并且每当你想提交时,你都要在其他地方克隆项目并将更改推回。 - Chris Eberle

4

git init --bare 的意思是创建一个仓库,而不是工作仓库。裸仓库通常存储在服务器上,看起来就像您的工作仓库中的.git目录。


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