Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux git可以用来处理回购协议中的项目吗?_Linux_Git - Fatal编程技术网

Linux git可以用来处理回购协议中的项目吗?

Linux git可以用来处理回购协议中的项目吗?,linux,git,Linux,Git,我在Debian上设置了一个git服务器,并在/srv/git/中创建了一个名为git的文件夹 在这个文件夹中,我想按云托管的cloud和on-prem托管的on-prem来划分我的git项目。在这两个文件夹中包含主机名以及部署、重新部署等所需的特定文件 因此,在云上运行apache的服务器的主机名为webapp,其文件夹结构为/srv/git/repos/cloud/webapp git init命令应该从cloud文件夹或webapp文件夹运行吗?我想您应该设置裸repo 正如您在问题中提到

我在Debian上设置了一个git服务器,并在/srv/git/中创建了一个名为git的文件夹

在这个文件夹中,我想按云托管的cloud和on-prem托管的on-prem来划分我的git项目。在这两个文件夹中包含主机名以及部署、重新部署等所需的特定文件

因此,在云上运行apache的服务器的主机名为webapp,其文件夹结构为/srv/git/repos/cloud/webapp


git init命令应该从cloud文件夹或webapp文件夹运行吗?

我想您应该设置裸repo

正如您在问题中提到的,您希望在这里有单独的git项目,所以我的理解是您希望在云目录下有多个项目

方法1: 非常直接的方法是做/srv/git/repos/cloud/webapp.git这里webapp就是git repo

git init --bare /srv/git/repos/cloud/webapp.git
将webapp设置为git repo

git init --bare /srv/git/repos/cloud/webapp.git
-裸回购:对于裸回购,您可以使用现有回购跳过此操作

尽管init对现有的存储库没有危害,但它是安全的。它不会覆盖已经存在的内容

方法2: 在另一个选项中,您可以将云保留为git repo,并将webapp作为子模块。这就是git回购中的回购

git init --bare /srv/git/repos/cloud/webapp.git
你可以选择最适合你的


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

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


也就是说,您还可以创建webapp目录,将其更改为,然后运行git:mkdir webapp;cd-webapp;git-init;最终结果将完全相同,但为什么要麻烦呢?

我没有听你的问题。你有两个回购,其中一个在另一个里面,如果我理解正确的话,你的回购目录有一个git回购列表?那些回购协议是子模块吗?对不起,它是/srv/git/repos/cloud.git/webapp,或者我应该使用/srv/git/repos/cloud/webapp.gitSo,当我需要从/srv/git/repo/cloud/webapp/中获取一些文件时,如果我使用方法2,我不需要将不相关内容的整个存储库克隆或复制到新主机?如果你需要从git-repo服务器访问该文件,那么你将拥有本地副本在机器上。如果您不想将repo克隆到本地副本中,您可以特别签出特定文件,您不必克隆整个repo。从git repo git archive获取特定文件的示例命令-remote=ssh://host/pathto/repo.git HEAD README.md | tar-x或只使用wget它将完成我遵循的工作选项1-如果我确实需要克隆,而不是引入所有子模块,这将更容易。谢谢