2011-03-31 52 views
11

请问你能否解释一下,我是否真的需要在远程机器上安装git服务器,如果我只需要在那里放置仓库并通过ssh访问它呢?如果我想通过ssh访问远程资源库,那么安装Git服务器是否必要?

我的无知可能是由误会一些关键的git的工作原理,所以我会很高兴,如果有人会向我解释开始。

我认为远程服务器的git只是一个地方,它存储的文件非常像我的电脑的本地文件夹,我可以让远程服务器通过ssh访问主机我的回购就可以了,而无需安装git服务器二进制文件那里。

这可能吗?如果不是,你能解释我这个我想念的东西吗?

回答

5

所有git运行所需的文件被本地存储到结帐(在.git目录中)。您可能只是通过SSH访问您的git存储库,并有效地将其视为本地计算机上的存储库,例如通过本地挂载远程文件夹。

但是,我不知道为什么你会想这样做。没有安装git二进制文件,你不能做任何有用的事情。如果您只是想使用存储库进行专用版本管理,那么您可以在本地安装和运行,并使用通常的备份方法进行备份。如果您想使用存储库与其他人协作,那么您需要服务器上的所有协作者都可以访问的git二进制文件。

有一个混帐“服务器”和git的“客户”之间没有任何有意义的区别。这是一个分布式版本控制系统,这意味着每个结账本身都是一个功能完整的版本库。

+1

+1指出(在大多数情况下),你确实需要** **的Git安装在远程机器上,即使你不需要任何特殊的服务器软件 – 2011-03-31 08:42:39

+0

我要使用远程服务器只是为了为了方便起见,在我的三台PC上同步我的工作。除我之外没有人会使用它。所以,我想我可以通过SSH创建远程存储库,对吧? – 2011-03-31 09:52:09

+0

你真的需要安装在远程机器上的git通过ssh推送它吗? – 2011-03-31 13:43:38

4

当然这可能有一个不“混帐服务器”的ssh访问。
虽然你需要一个ssh服务器(守护进程)。

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

Gitolite。是一个很好的例子,使用ssh的强制命令机制来管理授权(不访问)。
Gitolite without SSH意识到只是一个sshd的是足够的混帐回购协议的访问。

也为各种协议见Pro Git book由Git支持。

3

如果通过SSH操作你不需要一个Git服务器。技巧是让文件权限正确,以便每个人都可以编辑这些文件。

如果你这样做只是为自己的服务器上:

git init --bare 

如果你与其他开发人员做的,那么你将需要:

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