赞
踩
在centos用户的家目录(即/home/centos/)下初始化一个空的Git仓库:
git init --bare swaggers.git
编写hook脚本
cd swaggers.git/hooks
vim post-receive
cd /www/wwwroot/test
unset GIT_DIR
git config --list
git pull origin master
(切记将post-receive脚本权限修改为可执行文件,777即可)
cd /data/web/src/
sudo git clone /home/centos/swaggers.git
本地配置ssh(否则可能无法提交至远程主机)生成公钥私钥文件
ssh-keygen -t rsa -C "username"
将本地C:\Users\user.ssh\id_rsa.pub公钥文件内容复制至远程主机/home/centos/.ssh/authorized_keys文件中(不同用户的公钥文件换行保存,切记.ssh目录及其下文件都要改成700权限)
将分支推送至远程主机:
git remote add giturl # 添加远程主机
如 git remote add swaggers ssh://centos@192.186.0.1:22/home/centos/swaggers.git
默认为ssh协议,22端口,可简写为:
git remote add swaggers centos@192.186.0.1:/home/centos/swaggers.git
git push [<host>] [<localbranch>][:<remotebranch>] #推送代码,host默认为origin,localbranch默认为当前分支,remotebranch默认为当前分支追踪的分支,当remotebranch不存在时,会在远程主机新建一个同名分支,省略localbranch时,表示删除指定的远程分支,等同于git push <host> --delete <remotebranch>,当前分支与远程分支之间存在追踪关系时,可省略localbranch和remotebranch.如 git push swaggers swaggers:master
git pull remotehost remotebranch localbranch 从remotehost主机拉取remotebranch分支代码到localbranch分支
git checkout -b 本地分支名 origin/远程分支名 将远程git仓库里的指定分支拉取到本地(用于从远程仓库获取本地不存在的分支)
git push [<host>] [<localbranch>][:<remotebranch>] 推送代码,host默认为origin,localbranch默认为当前分支,remotebranch默认为当前分支追踪的分支
当remotebranch不存在时,会在远程主机新建一个同名分支
省略localbranch时,表示删除指定的远程分支,等同于git push <host> --delete <remotebranch>
当前分支与远程分支之间存在追踪关系时,可省略localbranch和remotebranch
在完成一次推送后,从web目录检出仓库代码的情况下,是不会出现问题的,但是如果是先在web目录下检出仓库代码,再去推送,推送的过程中就会报错,分支有问题,此时应执行如下代码:
git push swaggers +master:refs/heads/master
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。