你能解释一下,如果我只需要在那里放置存储库并通过ssh访问它,我真的需要在远程机器上安装git服务器吗?
我的无知可能始于误解一些关键的git操作原则,所以如果有人会向我解释,我会很高兴。
我认为git的远程服务器只是一个存储文件的地方,就像我的PC的本地文件夹一样,我可以通过ssh访问远程服务器来托管我的repo而不需要在那里安装git服务器二进制文件。
那可能吗?如果没有,你能解释一下我想念的这件事吗?
你能解释一下,如果我只需要在那里放置存储库并通过ssh访问它,我真的需要在远程机器上安装git服务器吗?
我的无知可能始于误解一些关键的git操作原则,所以如果有人会向我解释,我会很高兴。
我认为git的远程服务器只是一个存储文件的地方,就像我的PC的本地文件夹一样,我可以通过ssh访问远程服务器来托管我的repo而不需要在那里安装git服务器二进制文件。
那可能吗?如果没有,你能解释一下我想念的这件事吗?
git运行所需的所有文件都存储在本地存储到结帐中(在 .git
目录)。您 可以 只需通过SSH访问您的git存储库,并有效地将其视为本地计算机上的存储库,例如通过在本地安装远程文件夹。
但是,我不确定你为什么要那样做。如果没有安装git二进制文件,你就无法做任何有用的事情。如果您只是想将存储库用于私有版本控制,那么您也可以在本地安装和运行,并使用常用的备份方法进行备份。如果您想使用存储库与其他人协作,那么您需要在服务器上提供的所有协作者都可以访问的git二进制文件。
git“服务器”和git“客户端”之间没有任何有意义的区别。它是一个分布式版本控制系统,这意味着每个结账都是一个功能齐全的版本库。
git运行所需的所有文件都存储在本地存储到结帐中(在 .git
目录)。您 可以 只需通过SSH访问您的git存储库,并有效地将其视为本地计算机上的存储库,例如通过在本地安装远程文件夹。
但是,我不确定你为什么要那样做。如果没有安装git二进制文件,你就无法做任何有用的事情。如果您只是想将存储库用于私有版本控制,那么您也可以在本地安装和运行,并使用常用的备份方法进行备份。如果您想使用存储库与其他人协作,那么您需要在服务器上提供的所有协作者都可以访问的git二进制文件。
git“服务器”和git“客户端”之间没有任何有意义的区别。它是一个分布式版本控制系统,这意味着每个结账都是一个功能齐全的版本库。
当然可以在没有“git服务器”的情况下进行ssh访问。
但是你需要一个ssh服务器(守护进程)。
不要混合“远程服务器”和“远程(或实际上游)repo:远程仓库可以是当前仓库(本地协议)旁边的简单目录。
Gitolite 是一个很好的例子,使用ssh的强制命令机制来管理 授权 (不访问)。
看到 没有SSH的Gitolite 意识到只有一个sshd就足以让git repo访问了。
也可以看看 Pro Git书 对于Git支持的各种协议。
如果通过SSH操作,则不需要git服务器。诀窍是获得正确的文件权限,以便每个人都可以编辑文件。
如果你只是为自己这样做,在服务器上:
git init --bare
如果您正在与其他开发人员一起工作,那么您需要:
mkdir repo
chgrp GROUP repo
chmod g+rwxs repo
cd repo
git init --bare --shared=group