Git 介绍(来源于度娘)

Git是一款免费、开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。

Git是一个开源的分布式版本控制系统,可以有效、高速的处理从很小到非常大的项目版本管理。


切入正题,下面开始部署git-server

[root@git-server ~]# yum -y install git                                    //安装主程序
[root@git-server ~]# groupadd git                                       //创建git用户组
[root@git-server ~]# useradd git -g git -s /bin/git-shell                   //创建git用户,指定基本组及登录shell
[root@git-server ~]# mkdir /git                                         //创建目录用于git数据仓库
[root@git-server git]# git init --bare test.git                             //创建git仓库
Initialized empty Git repository in /git/test.git/
[root@git-server git]# chown -R git.git /git                                //修改仓库所在目录属主属组

以下两步骤在git-client执行

[root@git-client ~]# ssh-keygen -t rsa -f /root/.ssh/id_rsa -N ''             //在客户端创建密钥用于免验证登录
[root@git-client ~]# scp .ssh/id_rsa.pub 10.8.8.63:/root                    //拷贝公钥至server端

再次返回git-server

[root@git-server ~]# mkdir /home/git/.ssh/                              
[root@git-server ~]# cat id_rsa.pub >>/home/git/.ssh/authorized_keys    //将client公钥写入git用户认证文件,多个公钥可逐行写入

接下来就可以去git-client clone 了

[root@git-client ~]# yum -y install git                              //安装主程序
[root@git-client git-clone]# git config --global user.name liu           //配置个人信息, Git 为每个提交都记录名字与电子邮箱地址,所以第一步需要配置用户名和邮箱地址
[root@git-client git-clone]# git config --global user.email liu@abc.com
[root@git-client ~]# mkdir /git-clone                                   //创建目录用于本地仓库
[root@git-client ~]# cd /git-clone/
[root@git-client git-clone]# git clone git@10.8.8.63:/git/test.git      //克隆远程仓库至本地,同SVN的checkout
Cloning into 'test'...
warning: You appear to have cloned an empty repository. 
[root@git-client git-clone]# ls                                           //克隆成功后当前目录下会产生对应项目目录
test
[root@git-client git-clone]# cd test
[root@git-client test]# touch hello.php                                  //创建hello.php文件用于测试
[root@git-client test]# git add hello.php                                // git add 命令可将该文件添加到缓存
[root@git-client test]# git commit -m "test"                            //git commit 将缓存区内容添加到仓库中
[master (root-commit) 065448d] test
 1 file changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 hello.php
[root@git-client test]# git push                                       //git push 命令将本地仓库所有更新提交至远程仓库
      至此,Git就算是部署完成了,至少可以用了对吧!!!大笑
      

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


如果需要使用到Gitosis,可关注另一篇关于此工具的用法,链接如下:
http://blog.csdn.net/qq_36806379/article/details/79188862



Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐