GIT 知识汇总

GIT 知识汇总一、本地创建远程 git 仓库(抄录自廖雪峰的网站)管理公钥管理权限2018-01-17[21:53]查看 git每次的入库详情二、Git 创建一个库,接收远程入库(吸收自Pro Git)1、为git 创建一个用户,或者使用现有用户。2、为 wishcell 用户添加 git 支持3、添加客户机公钥4、在服务器上创建一个git 库目录5、客户机上拉取代码,提交代码6、推送远程服务器7、另起一个目录,拉取刚刚提交上去的代码三、GIT服务器IP改变怎么办四、为git服务器提供 http拉取代码的方法1、2、3、五、 git服务器提供 web 访问服务器代码的能力1、下载 git 代码,然后编译 gitweb2、添加一个虚拟主机3、运行/重启apache服务4、在客户机浏览器中查看代码六、真正的公司级 git项目管理工具GitLab1、简介2、3、4、5、七、gerrit搭建

一、本地创建远程 git 仓库(抄录自廖雪峰的网站)

第一步,安装git

 

第二步,创建一个git用户,用来运行git服务:

 

第三步,创建证书登录:

收集所有需要登录的用户的公钥,就是他们自己的id_rsa.pub文件,把所有公钥导入到/home/git/.ssh/authorized_keys文件里,一行一个。

第四步,初始化Git仓库:

先选定一个目录作为Git仓库,假定是/srv/sample.git,在/srv目录下输入命令:

 

Git就会创建一个裸仓库,裸仓库没有工作区,因为服务器上的Git仓库纯粹是为了共享,所以不让用户直接登录到服务器上去改工作区,并且服务器上的Git仓库通常都以.git结尾。然后,把owner改为git

 

第五步,禁用shell登录:

出于安全考虑,第二步创建的git用户不允许登录shell,这可以通过编辑/etc/passwd文件完成。找到类似下面的一行:

 

改为:

 

这样,git用户可以正常通过ssh使用git,但无法登录shell,因为我们为git用户指定的git-shell每次一登录就自动退出。

第六步,克隆远程仓库:

现在,可以通过git clone命令克隆远程仓库了,在各自的电脑上运行:

 

剩下的推送就简单了。

管理公钥

如果团队很小,把每个人的公钥收集起来放到服务器的/home/git/.ssh/authorized_keys文件里就是可行的。如果团队有几百号人,就没法这么玩了,这时,可以用Gitosis来管理公钥。

这里我们不介绍怎么玩Gitosis了,几百号人的团队基本都在500强了,相信找个高水平的Linux管理员问题不大。

管理权限

有很多不但视源代码如生命,而且视员工为窃贼的公司,会在版本控制系统里设置一套完善的权限控制,每个人是否有读写权限会精确到每个分支甚至每个目录下。因为Git是为Linux源代码托管而开发的,所以Git也继承了开源社区的精神,不支持权限控制。不过,因为Git支持钩子(hook),所以,可以在服务器端编写一系列脚本来控制提交等操作,达到权限控制的目的。Gitolite就是这个工具。

这里我们也不介绍Gitolite了,不要把有限的生命浪费到权限斗争中。

 

2018-01-17

[21:53]查看 git每次的入库详情

 

 

二、Git 创建一个库,接收远程入库(吸收自Pro Git)

1、为git 创建一个用户,或者使用现有用户。

 

2、为 wishcell 用户添加 git 支持

3、添加客户机公钥

 

4、在服务器上创建一个git 库目录

 

5、客户机上拉取代码,提交代码

 
 

6、推送远程服务器

 

7、另起一个目录,拉取刚刚提交上去的代码

 

三、GIT服务器IP改变怎么办

 
 

 

四、为git服务器提供 http拉取代码的方法

4.6 服务器上的 Git - Smart HTTP

1、

2、

3、

五、 git服务器提供 web 访问服务器代码的能力

4.7 服务器上的 Git - GitWeb

1、下载 git 代码,然后编译 gitweb

 

2、添加一个虚拟主机

 

然后编辑虚拟机配置文件:/etc/httpd/conf/vhosts/gitserver

 

3、运行/重启apache服务

 

4、在客户机浏览器中查看代码

此效果很不尽如人意:

1、没有看到预期的 git 项目代码,按照理想状态,此实验 git 中有项目代码

2、虚拟机指定为80端口,不能指定为其它端口,否则无法访问

​ 即只有一个虚拟机,意义不大

六、真正的公司级 git项目管理工具GitLab

1、简介

 

2、

 

3、

 

4、

 

5、

七、gerrit搭建