使用git的hooks自动同步代码
需求
由于最近做Python的linux服务器脚本,经常要同步代码到测试服务器,又不想直接ssh登录到服务器,所以萌生了用git自动同步代码的想法。
具体的要求是:测试机是服务器,需要本地一push代码,测试机能实时更新。
查阅相关资料发现可以用git的hooks来实现。
解决步骤
说明:
- 本地项目: git-test
- 中转仓库: git-transfer
- 目的项目: git-dest
- 中转仓库与目的项目都在测试机上
初始化中转仓库
1 | mkdir git-transfer |
将中转仓库添加到本地项目的remote
git remote add transfer ssh://[email protected]/home/r/git-transfer/
给中转仓库添加hooks
1 | cd /home/r/git-transfer/hooks/ |
将 post-update 的内容修改为如下
1 | !/bin/sh |
将中转仓库clone到目的项目
git clone /home/r/git-transfer/ /home/r/git-dest/
或者
1 | cd git-dest |
这样在本地项目一push,目的项目就会马上更新