我有我的本地dev repo(origin)和一个我使用git init创建的远程仓库 -就像这里推荐的那样.我也跑了git --bare update-server-info
git config --bool core.bare true
Run Code Online (Sandbox Code Playgroud)
Git remote -v显示
origin http://staging.websitename.com (fetch)
origin http://staging.websitename.com (push)
remote ssh://user@xx.xx.xx/home/user/public_html/staging (fetch)
remote ssh://user@xx.xx.xx/home/user/public_html/staging (push)
Run Code Online (Sandbox Code Playgroud)
在此之后并运行git push remote或git push -all remote,它会通过并且没有错误.为什么我看不到遥控器上的文件?
Compressing objects: 100% (4121/4121), done.
Writing objects: 100% (4242/4242), 18.70 MiB | 694 KiB/s, done.
Total 4242 (delta 495), reused 0 (delta 0)
Run Code Online (Sandbox Code Playgroud)
存储库的要点--bare是它没有工作副本(也没有索引),这意味着推送不会弄乱任何内容。
如果您希望某些推送(到一个或多个特定分支)“自动部署”,实现这一点的方法是在存储库中使用 git hook --bare。钩子\xe2\x80\x94通常post-receive,尽管可以在此处使用pre-receive或update钩子\xe2\x80\x94在所有推送上运行,所以它应该检查有问题的推送是否“有趣”(影响自动)部署分支),如果是,则触发部署。
该钩子代表执行推送的进程运行(通常作为某个用户进行 ssh,如git remote -v输出中所示),因此如果部署的文件应由另一个用户拥有,则必须以某种方式进行安排。一种简单、简单且合理的方法是写入设置为模式rw-rw-rw-(每个人都可写入)的文件,并让某些东西(例如 cron 作业)定期检查该文件。如果写入,则以部署用户\xe2\x80\x94 身份运行的 cron 作业\xe2\x80\x94 可以提取相应分支的最新版本。另一种方法是联系执行此操作的服务器(puppet 等)。
如果执行推送 () 的用户可以拥有这些文件,则更简单的方法是在挂钩中user@xx.xx.xx运行,但使用与存储库没有其他连接的备用工作树。git checkout--bare
| 归档时间: |
|
| 查看次数: |
3231 次 |
| 最近记录: |