1. 使用流程简介

1.1示例图简介:
- serverPro:代表在服务器上部署production环境的git仓库
- serverDev:代表在服务器上部署development环境的git仓库
- gitee:远程私有仓库,团队开发用
- 本地仓库:个人电脑上开发用的本地仓库
1.2使用流程简介:
在服务器上面分别创建好不同环境的git仓库并且记录下绝对路径,在码云(gitee)上创建私有仓库并且记录下https连接。创建好本仓库,并且配置好不同环境。团队成员开发的代码,统一提交到gitee,等开发自测完成后,部署到开发环境(development)给客户端开发人员开发;客户端开发完成后,接着提交测试人员测试。一切通过后,由后台管理人员,提交到生产环境(production),供客户使用。
2. 服务器端创建仓库
这些工作都在root或有管理权限的帐号下进行:
- 确保安装了git
- 为了安全起见,新建一个专门用于代码部署的无特权用户
useradd -m user
创建用户
passwd user
设置该用户的密码 - 新建一个目录作为要部署生产环境代码的根目录,如:
mkdir /var/git/serverPro
- 将这个目录的属主和属组都改为上面新建的用户user
cd /var/git
chown user:user serverPro
- 切换到部署代码的专用用户:
su user
- 进入项目根目录,初始化为git仓库
进入仓库根目录:cd serverPro
仓库初始化:git init
- 让仓库接受代码提交【重要】
git config receive.denyCurrentBranch ignore
git config core.worktree ~/www
[可选]
git config --bool receive.denyNonFastForwards false #禁止强制推送
[可选] - 一个空的git仓库就在服务器上建好了,仓库的地址为:
ssh://user@ip/var/git/serverPro
3. 本地repo配置
- 通过
git clone
从 服务器仓库上将代码获取到本地 - 将服务器添加到远程仓库列表,使用名字来区分不同的服务器 :
git remote add serverPro ssh://user@115.28.49.164:/var/git/serverPro
- 添加gitee仓库:
git remote add gitee https://gitee.com/leaveslife/ghost.git
,添加其它的类似 - 将本地代码提交到服务器上面
git push serverPro master
- 拉取服务端的代码
git pull serverPro master
- 如果是'git clone'创建的仓库,那么默认origin是clone的服务器地址
- 使用sourcetree管理时,也可以查看到添加配置的信息,提交到不同的服务器仓库
4. 更新服务仓库的代码
将本地代表提交到服务器仓库,服务器仓库的代码记录已更新 ( git status 查看记录) ,但是没有在服务器的git根目录更新,需要我们做进一步处理
-
更新服务端 git 仓库状态并检出文件
进入服务器git仓库目录:cd /var/git/serverPro
更新仓库代码:
git update-server-info
git checkout -f
OR:
git checkout branch_name # 需要更新的分支
-
通过
ls
来查看代码是否更新 -
如果使用的是pm2管理的node程序,使用
pm2 reload serverPro
来重启服务进程 -
上面的功能已经满足我大部分需求,如需更多高级用法,可看参考来源
5. 参考
- 使用git做服务器端代码的部署:https://www.douban.com/note/407034249/
网友评论