我正在使用Git错误.我想用得对.
这是我得到的:
在这里,在我的开发机器上是一个Git存储库,我承诺并测试.
在那里,是我的网络服务器 - 这个代码将被部署的地方.Web服务器有另一个裸git存储库,当我准备部署时,我可以通过SSH推送它.
我想要发生的是查看Git存储库,该存储库始终具有最新版本的源文件(在某些分支或某些标记上).
我可以做的是在Web服务器上创建另一个(非裸)git存储库,并在每次推送后进行手动拉取,但我希望每次执行时都不必登录到Web服务器git push.
有没有办法远程"推送到网络服务器并刷新其签出的文件,如果我保证我没有编辑网络服务器上的任何文件"?
或者我只是这样做错了你想打我?:-)
我通常使用包含文件.git/hooks/post-receive创建一个非裸存储库
#!/bin/sh
cd ..
env -i git reset --hard
Run Code Online (Sandbox Code Playgroud)
此文件必须是可执行文件,并且必须签出分支.
然后,每次推送到该存储库时,工作树将重置为当前分支的最新版本.任何本地更改都将被覆盖(但不会删除未跟踪的文件).
当您推送到签出分支时,Git现在会显示警告(并在将来的版本中拒绝它).为避免这种情况,您可以在远程存储库上设置此配置:
git config receive.denyCurrentBranch ignore
Run Code Online (Sandbox Code Playgroud)
您可以在此存储库上工作,但必须在对其进行任何推送之前提交更改.
我在那里找到了提示:http://debuggable.com/posts/git-tip-auto-update-working-tree-via-post-receive-hook : 49551efe-6414-4e86-aec6-544f4834cda3
| 归档时间: |
|
| 查看次数: |
918 次 |
| 最近记录: |