Git服务器是什么?

3
我知道git服务器托管git存储库的主要副本。但是,技术上什么构成了一个Git服务器呢?例如,如果我在Eclipse中配置我的存储库中的远程版本库,那么该远程版本库是否必须具有特殊性质?远程版本库只能是Windows服务器上映射网络驱动器内的文件夹吗?我之所以问这个问题,是因为我看到了一系列的选项来连接远程版本库,包括本地文件。
我认为我的问题归结为,一个Git服务器必须处理特殊的Git协议内容,还是仅仅是提供组成存储库的文件的一种方式?
2个回答

3
您可以通过多种协议与远程Git存储库进行通信:如ssh、rsync、本地文件、ftp和特殊的Git协议等(更广泛的列表在此处此处提供)。如果您选择设置服务器,Git附带了一个工具git-daemon来处理其自己的Git协议。

1

远程连接是否可以只是Windows服务器上映射网络驱动器内的文件夹?我想知道这一点,因为我看到了各种连接远程的选项,包括本地文件。

是的,它可以非常简单,就像一个本地文件夹一样。当然,如果您不需要任何身份验证或授权。

我想我的问题归结为:是否有特殊的git协议必须由git服务器处理,还是仅仅是提供组成存储库的文件的一种方式?

有两个协议,一个是HTTP,另一个是SSH。我相信HTTP协议对于所有人来说都是只读的,并且没有授权,但我不记得了。

但是SSH协议是在任何具有SSH访问权限的计算机上设置git服务器的简单方法。在底层,每次调用git pushgit pull时,您安装的git将通过SSH连接到服务器并分别运行git receive packgit upload pack,然后继续使用协议确定您可以发送或接收的最小PACK文件以满足您的需求。

你可以在这里阅读有关git协议的所有细节,或者这里提供了更简单的解释。

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