Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/22.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
如果我想通过ssh访问远程存储库,那么安装Git server是否有必要?_Git - Fatal编程技术网

如果我想通过ssh访问远程存储库,那么安装Git server是否有必要?

如果我想通过ssh访问远程存储库,那么安装Git server是否有必要?,git,Git,请您解释一下,如果我只需要将存储库放在远程机器上并通过ssh访问它,我真的需要在远程机器上安装git server吗 我的无知可能是因为误解了一些关键的git操作原理,所以如果有人能给我解释一下,我会很高兴 我认为,git的远程服务器只是一个存储文件的地方,就像我的PC的本地文件夹一样,我可以让具有ssh访问权限的远程服务器在其上托管我的repo,而无需在那里安装git服务器二进制文件 可能吗?如果没有,你能解释一下我错过了什么吗?当然可以在没有“git服务器”的情况下进行ssh访问。 不过,您

请您解释一下,如果我只需要将存储库放在远程机器上并通过ssh访问它,我真的需要在远程机器上安装git server吗

我的无知可能是因为误解了一些关键的git操作原理,所以如果有人能给我解释一下,我会很高兴

我认为,git的远程服务器只是一个存储文件的地方,就像我的PC的本地文件夹一样,我可以让具有ssh访问权限的远程服务器在其上托管我的repo,而无需在那里安装git服务器二进制文件


可能吗?如果没有,你能解释一下我错过了什么吗?

当然可以在没有“git服务器”的情况下进行ssh访问。
不过,您需要一个ssh服务器(守护进程)

不要混合使用“远程服务器”和“远程(或实际上是上游)repo”:远程repo可以是当前repo(本地协议)旁边的一个简单目录

就是一个很好的例子,它使用ssh的强制命令机制来管理授权(而不是访问)。
请注意,只需一个sshd就足以实现git-repo访问


另请参阅Git支持的各种协议。

如果通过SSH操作,则不需要Git服务器。诀窍是获得正确的文件权限,以便每个人都可以编辑文件

如果您只是为了自己,请在服务器上:

 git init --bare
如果您与其他开发人员合作,则需要:

 mkdir repo
 chgrp GROUP repo
 chmod g+rwxs repo
 cd repo
 git init --bare --shared=group

git运行所需的所有文件都存储在本地签出(在
.git
目录中)。您只需通过SSH访问git存储库,并将其有效地当作本地机器上的存储库,例如,通过本地装载远程文件夹

但是,我不知道您为什么要这样做。如果不安装git二进制文件,您就无法做任何有用的事情。如果您只是想使用存储库进行私有版本控制,那么您最好在本地安装并运行,然后使用常用的备份方法进行备份。如果您想使用存储库与其他人协作,那么您需要所有合作者都可以访问的服务器上可用的git二进制文件


git“服务器”和git“客户端”之间没有明显的区别。它是一个分布式版本控制系统,这意味着每个签出本身就是一个功能齐全的版本存储库。

+1指出这一点(在大多数情况下)你确实需要在远程机器上安装git,即使你不需要任何特殊的服务器软件。为了方便起见,我将使用remote server在我的三台电脑上同步我的工作。除了我之外,没有人会使用它。因此,我想我可以通过SSH创建远程存储库,对吗?你真的需要在远程机器上安装git来实现p是的,基本上-你只需要一个非常小的命令集(请参阅,但是只安装
git
要比减少到这个集容易得多。结果是,当你通过ssh推送时,你实际上是在远程上运行git命令。”通过在本地挂载远程文件夹“-我不认为这在所有情况下都有效。如果不同机器上的两个用户从第三台机器上安装了相同的git repo,该怎么办。文件锁定和存在两个可能不同版本的git真的有效吗?在所有情况下?在远程机器上安装git允许每个用户的git在远程机器上运行git命令(例如,相同的git,具有相同的文件系统)。这将保证文件锁定和访问正常工作。