每当我推送到远程存储库时,我都会想要更新一个网站.我来自一个svn背景,仍然试图找出git.
现在,我做了以下事情:
现在我有点卡住了.我可以将更改推送到服务器上的裸存储库,但我不知道如何在我的www目录中检出存储库的工作副本,并在我将本地存储库推送到服务器时自动更新它.我可能需要一个钩子脚本吗?
相关问题,使用Git部署PHP,部分回答了我的问题,但我想知道脚本实际上在做什么.
它基本上从一个裸存储库开始,并将工作树更改为 Web 服务器文件夹。之后,它在每次收到推送后使用接收后挂钩来更新工作树。一个优雅且易于遵循的过程!
除了该文章中的设置之外,我还添加了一个从网站位置到 git 存储库位置的软链接“.git”目录:
ln -s /home/caius/git/somesite.git/ /home/caius/vhosts/somesite.com/htdocs/.git
Run Code Online (Sandbox Code Playgroud)
这样我就可以通过登录并在网站文件夹中使用“git checkout”来签出网络服务器上的另一个分支!
我还对这里的 Python 脚本“ygit-push-all.py”进行了稍微修改,以更新我的多台机器,这些机器都使用不同的配置文件运行相同的框架代码。您甚至可以为每个服务器设置一个分支(如演示/开发)。
此外,我将以下别名添加到我的全局 git 配置文件中:
[alias]
push-all = !ygit-push-all.py
check-all = !sh -c 'git branch -r -v | grep master | awk \"{ print \\$1, \\$2 }\"'
Run Code Online (Sandbox Code Playgroud)
git push-all将更新我所有的远程位置
git check-all将显示每个远程主分支所在的版本
归档时间: |
|
查看次数: |
1980 次 |
最近记录: |