搭建环境
服务器端:CentOS 6.5 IP:192.168.101.129
客户端:CentOS 6.5 、 Windows
服务器端:
创建repository版本库,例如/srv/test.git
git init --bare 创建一个裸仓库,没有工作区,目的是不让用户直接登录到服务器上去改工作区,并且服务器上的Git仓库通常都以.git
结尾
把要访问的客户端公钥(id_rsa.pub)追加到服务器端~/.ssh/authorized_keys文件中
客户端的公钥和私钥位于~/.ssh/目录下,没有可通过ssh-keygen -t rsa命令产生
修改sshd配置文件(/etc/ssh/sshd_config),取消以下行的注释:
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
客户端:
git clone root@192.168.101.129:/srv/test.git
也可以:
git push
git pull
如果遇到错误:[remote rejected] master -> master (branch is currently checked out)
说明服务器端目前所处分支 和 客户端推送的分支 相同,不能推送
解决办法:
1 修改服务器端.git/config配置文件
[receive]
denyCurrentBranch = ignore
2 使分支不同
3 初始化用git init --bare 不用 git init
这样初始化的是一个没有工作区的仓库,push推送的文件保存在仓库目录里(test.git/objects/)