2017-04-20 145 views
0

我在Debian上安装了一个git服务器,并在/srv/git/中创建了一个名为git的文件夹。可以用git来处理回购项目中的项目吗?

在文件夹里面,我想用云托管我的git项目cloud和本地托管on-prem。里面这两个文件夹中包含的主机名和它需要的部署,重新部署等特定文件

所以,它与主机名云阿帕奇像webapp将有一个文件夹结构像/srv/git/repos/cloud/webapp的服务器。

应该命令git initcloud文件夹或文件夹webapp跑出?

+0

我没有按照你的问题。你有两个回购站,其中一个回到另一个回收站,如果我正确理解你的回购目录有git回购清单?那些回购是子模块? – LethalProgrammer

+0

对不起,它是'/ srv/git/repos/cloud.git/webapp',或者我应该使用'/ srv/git/repos/cloud/webapp。git' – MarkH

回答

1

我假设你设置裸露的回购。

正如你在问题中提到的,你想在这里有单独的git项目复数,所以我明白你想要在云目录下有多个项目。

方法1:

cloud 
    |------->webapp 
    |------->something1 
    |------->something2 

非常直接的方式是做/srv/git/repos/cloud/webapp.git这里的webapp是混帐回购协议。

将webapp设置为git repo。

git init --bare /srv/git/repos/cloud/webapp.git 
  • --bare:对于裸回购您也可以利用exisiting回购跳过此。

  • 尽管init对已存在的资源库是无害的,但是安全。它不会覆盖的东西已经存在

方法2:

cloud (git repo) 
    |------->webapp  (submodule) 
    |------->something1 (submodule) 
    |------->something2 (submodule) 

在另一种选择,你可以保持云作为混帐回购协议,使Web应用的子模块。这是git回购里面的回购。

你可以选择最适合你的东西。

我建议使用两个不同的回购,如果你在一个git回购中有很多子模块,在开始跟踪事情时可能会很麻烦。

+0

因此,当我需要'/ srv/git/repo/cloud/webapp /'中的几个文件时,如果使用的话,我不需要将整个不相关的东西存储到新主机中方法2? – MarkH

+1

如果您需要从git repo服务器访问该文件,那么您将在本机上进行本地复制。如果你不想将repo克隆到你的本地拷贝中,你可以特别签出特定的文件,你不必克隆整个repo。示例命令从git repo获取特定文件git archive --remote = ssh://host/pathto/repo.git HEAD README.md | tar -x'或者只是使用'wget'它会完成这项工作 – LethalProgrammer

+0

我跟着选项1 - 如果我确实需要克隆而不是引入所有的子模块,会更容易。谢谢! – MarkH

0

您的问题的答案是您应该从云文件夹运行git init,并将webapp作为第一个参数,即git init webapp

这就是说,你还可以创建webapp目录下,变成它,然后运行git:mkdir webapp; cd webapp; git init;最终的结果将是完全一样的,但何必呢?

相关问题