git 服务器

git服务器是个裸仓库(理解git原理),简单的说就是各个客户端的.git文件夹

Git 可以使用四种主要的协议来传输数据:本地传输,SSH 协议,Git 协议和 HTTP 协议。除了 HTTP/S 协议外,其他所有协议都要求在服务器端安装并运行 Git。SSH 也是唯一一个同时支持读写操作的网络协议。



创建HTTP协议(可以使用任何静态 web 服务 )的GIT服务器:
$ cd /var/www/htdocs/ #web服务根目录
$ git clone --bare /path/to/git_project gitproject.git #新建裸仓库,相当于复制
$ cd gitproject.git
$ mv hooks/post-update.sample hooks/post-update
$ chmod a+x hooks/post-update
Git 附带的 post-update 挂钩会默认运行合适的命令(git update-server-info)来确保通过 HTTP 的获取和克隆正常工作。这条命令在你用 SSH 向仓库推送内容时运行;之后,其他人就可以用http协议clone。

创建SSH协议的git服务器:仅仅是一个 SSH 服务器和裸仓库就足够了
1.只要在服务器上加入可以用 SSH 登录的帐号,然后把裸仓库放在大家都有读写权限的地方
git init --bare --shared #修改该仓库目录的组权限为可写
只要每个人都能获得主机的 shell 访问权,任何可用的 SSH 授权机制都能达到相同效果。
2.在主机上建立一个 git 账户,让每个需要写权限的人发送一个 SSH 公钥,然后将其加入 git 账户的 ~/.ssh/authorized_keys 文件