服务器:CentOS 6.3               
客户端:虚拟机+CentOS 6.3

看网上的教程都是先新建一个git用户吧, 其实用哪一个用户是无所谓的,我们在此也新建一个git用户和组,以后将所有的git项目全部放在这个git 用户家目录下,以便于管理。

服务器操作
1.adduser git   passwd git 
添加git 用户并设置密码

2.cd /home/git/      git init Test --bare
以root身份进入到git的家目录/home/git下,--bare选项的意思是裸仓库的意思,具体解释在文章下面。

客户端操作
1.cd /home/andy  mkdir test       git init      
与上面--bare的区别,具体在文章下面。

2.新建一个文件并写入内容测试,然后使用git add 和git commit提交
git 搭建服务器的过程回顾-LMLPHP

3.执行git remote -v 命令查看服务器端,我这里已经添加了一个,空的情况下使用命令git remote add name [email protected]:/home/git/test ,  我这里的name取名为git 不写的话默认名字是origin
使用git push 的时候需要指名这个名字所有我这里推送的时候就可以使用git push git branchname 
git remote rm 命令也可以删除一个远端
git 搭建服务器的过程回顾-LMLPHP

4.现在我们就可以使用git push命令了,git push git master。OK!



操作中的问题:
--bare
git init --bare 命令所产生的裸仓库是这样的。
git 搭建服务器的过程回顾-LMLPHP
再看下git init 命令产生的仓库,包含有一个.git的隐藏目录,而这个.git目录中的内容就是上图中git init --bare所产生的内空。
git 搭建服务器的过程回顾-LMLPHP
分析:git init -bare 所产生的目录是裸仓库,只做记录,当你在git init --bare所产生的仓库中执行git status add commit 等改变仓库的操作时会提示错误,如下:
git 搭建服务器的过程回顾-LMLPHP
它只做记录,不能更改。所以git log git branch是可以使用的。

操作中的问题:
改变git 用户登录shell变为不可登录   vim /etc/passwd    git:x:501:502::/home/git:/usr/bin/git-shell 禁止git 用户登录。

这样以后在添加项目的时候要使用root用户添加,添加完要一定要记得将仓库的 owner 和owner group变为git 
git 搭建服务器的过程回顾-LMLPHP
在之前的步骤中,我们使用命令git remote add git [email protected]:/home/git/test   指名用户名是git
如果服务器仓库的owner和owner和你指定的不符合的话,当你使用git push等命令的时候会出现权限错误的问题。

操作中的问题:执行git push pull clone 操作不用输入密码
使用ssh-keygen命令使客户端在/home/andy/.ssh/目录下产生公钥id_rsa.pub和私钥id_rsa文件

将id_rsa.pub中的内容添加到服务器下git 用户目录下的.ssh/authorized_keys文件内,没有的话创建一个就可以。
09-13 02:03