git本地协同
一.脚本下载
init.sh
#!/bin/bash cd code for dir in $(ls) do cd $dir git config --local receive.denycurrentbranch ignore echo $dir cd .. done
gitShare.sh
#!/bin/bash git clone serveName@serveIp:/gitWareHousePath
二.操作步骤如下:
1、gitRemote.sh下载代码,这个脚本可能更新
2、执行init.sh脚本设置每个仓库,修改git默认的拒绝push操作
3、客户端通过命令获取本机的公钥,发送给服务端
#sublime-text ~/.ssh/id_rsa.pub
4、服务器端通过命令将客户端的公钥加到自己认证文件中
#sublime-text ~/.ssh/authorized_keys
5、客户端可以通过脚本gitShare.sh获取服务器端代码
更新代码: git pull
提交代码: git push
6、服务器端可以看到提交记录,但是要看到最新代码需要执行git reset --hard。
7、服务器开启命令:
#service sshd start
三. 原理说明
1、主机0充当服务器,负责和远端仓库交互。注意要开启ssh服务
2、主机1、2、3...等充当客户端,将公钥发给服务器,通过gitShare.sh脚本拉取代码,通过git pull/push完成代码更新和推送操作
3、主机0也可以充当客户端,和其他客户端主机一样操作
server需要更新远端仓库代码:
那么需要先git reset --hard,将分支节点拉到最新,然后再git pull --rebase即可,如果有冲突就解决掉后git rebase --continue
client更新server更新后的代码:
使用git pull --rebase