第一步,安装git环境:
http://www.cnblogs.com/gscq073240/articles/7783293.html
第二步,linux创建git用户,用来运行并提供git服务:
//创建用户 [root@git ~]# adduser git //更改密码 [root@git ~]# passwd git //输入2次就可以了
第三步:收集客户端登录证书pubkey:
注,收集所有需要登录的用户的公钥,就是他们自己生成的id_rsa.pub文件,把所有公钥复制到/root/.ssh/authorized_keys文件里,一行一个!
1).客户端生成id_rsa.pub文件的命令
$ ssh-keygen -t rsa
注,一路回车即可,将生成的id_rsa.pub,复制给管理员,帮你在服务器上增加一下,下次你用git时就不需要输入用户名了。
查看服务器上authorized_keys文件:
[root@git ~]# cat /root/.ssh/authorized_keys ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAwMU4FKB6NRc3XSoIunWsdvVVuSoncbVb5Al6lB3ciswBVd++YmJFhqwkITNGccrO5sycROs9+Fbjgd6oBSzNuaBtCIbwNNsEyM/henTl2euI3XsnJQ/ITr6c/q0P3WoGl4E2QFQ2kZqs+1eDC0CgHcBrqvFv1Jr414sVYK9lfZwIF+jDdtaBOrSJuq1Agx9pGUFUEB4tQfkXxsWm/MvOmKAVvduKDE1eenUEL9zzyeELPcSXLe3NOoTjZhkX6EEXxQR1ZiZRFywLpfM4qopZ10to2KIUyVtzw6hx6V3cg7kn40lYVW0EAMATw9dVldwcRUI+kJzJSKUTKDVSwY3/+Q== root@CHENMINGQIAN ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAsmmJuR+KhRSpdSirCiL30RA8WbfgicY1z7itWVnKHJW6hTuJFhzruY59FilVjJR1hbQBluP9JnK3XPSK9PSg+bwiJ2iQRa39rXck35r+trVOLyNbPyfKVRfOemD8YuykMlyr5JeW8gZjsHEuLnJ8//RiCiYzd3RT/SSUQ4yawDoIIWkz3eUSL09xoCRZFBsAp+S/LD3vx2MN+FNOHwvqcE+yK3oRNIqjWwLoKE0e5TRnqNgrPQ95PJYB3XPUulzaeMwsWPZs7jIUMl/5yEqSgAkioa8SVMOsikYJG/erv99NNVgFmpCBIiWqKEGkNrIpYzLLHDSYQ4g5Gbci/RZ54Q== Administrator@WIN2003X323 ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA6NwUHeNNi+PC6KlrcJrXXDmKxRMmgHIPp79sgX6zqfdSlmNj7rBPQeyEKS9Wg8yI6jd8aG2jsUx99Vjti2VK2vEXKkRHxwID7ri69gE71RfDtv6ekafnzLo14J8hAp0spMk+N3wEAQRYDmcYo1wmnm/jMBedGrHj4NJQ1vYy1hVtJasGMSzjcMrlz9qvaluWnQ5tQjKFQVVwKsRRRzs8qTvzVhLJt4NQ+CAN45tqfsRuf58Uba9QNK7/6xSUiIKXQiILz8PMGJ3MnlV+eN3wx2aeztdevxu9plggtG05SMmd8GNVzXrN1IaxXSvz0UwjQ2kygu7aCqO8AZWH49rouw== leo@LEO-PC
说明:我这里有三个用户登录服务器,所以我这里就有三个ssh-rsa,大家可以看一下。
第四步:初始化git仓库:
注,先选定一个目录作为Git仓库,这里是/home/git/project.git。
[root@git ~]# cd /home/git/ [root@git git]# mkdir -p project.git [root@git git]# git init --bare project.git Initialized empty Git repository in /home/git/project.git/ [root@git git]# ls project.git/ branches config description HEAD hooks info objects refs
执行以上命令 Git命令,会创建一个裸仓库,裸仓库没有工作区,因为服务器上的Git仓库纯粹是为了共享,所以不让用户直接登录到服务器上去改工作区,并且服务器上的Git仓库通常都以.git结尾。
然后,把owner改为git:
[root@git git]# chown -R git:git project.git/ [root@git git]# ls -l total 4 drwxr-xr-x 7 git git 4096 Nov 4 14:06 project.git
第五步:禁用shell登录:
注,出于安全考虑,第二步创建的git用户不允许登录shell,这可以通过编辑/etc/passwd文件完成。找到类似下面的一行:
[root@git ~]# cat /etc/passwd | grep git git:x:500:500::/home/git:/bin/bash
改为:
[root@git ~]# vim /etc/passwd git:x:500:500::/home/git:/usr/local/bin/git-shell
这样,git用户可以正常通过ssh使用git,但无法登录shell,因为我们为git用户指定的git-shell每次一登录就自动退出。
第六步:克隆远程仓库:
注,现在可以通过git clone命令克隆远程仓库了,在各自的电脑上选择一个目录并运行:
$ git clone git@xxx.xxx.com:/home/git/project.git
注,其中git是用户名,xxx.xxx.com服务器,/home/git/project.git是仓库路径,输入密码是git用户的密码,ssh方式连接。
第七步:pull与push远程仓库:
clone好了仓库到本地之后,就需要指定远程仓库地址:
//如果存在就先删除 $ git remote rm origin //设置远程仓库地址 $ git remote add origin git@xxx.xxx.com:/home/git/project.git
然后先push点东西吧。