我有一个运行nginx的digitalocean液滴来提供我的html文件,并使用rest-api将url重定向到后端。
当我想更新服务器上的前端或后端时,我需要进行以下繁琐的过程,将其切入其中,拉出后端或前端,如果前端然后构建并重新启动服务。我正在寻找一种以某种方式自动执行某些步骤或全部步骤的方法。有什么技术可以帮助您吗?
答案 0 :(得分:1)
您可以编写cron脚本,在其中可以检查源分支HEAD与本地分支HEAD是否不同:
# check remote head
git ls-remote origin refs/heads/your_branch
#check local head
git rev-parse HEAD
# if remote HEAD is different than local HEAD, then pull
此解决方案仅适用于一个分支(例如your_branch
为master
)。如果您愿意,我可以为您编写完整的脚本,该脚本将检查所有本地分支是否与远程分支同步。
我想要python中的脚本,但是bash也是一种选择。
顺便说一句
在我看来,自动拉动不是一个好的解决方案。如果您有未提交的更改怎么办?藏起来,拉后套用吗?
如果您有未发布的提交怎么办?您应该只进行纯拉动还是使用变基拉动?
通过获取,您不会遇到此类问题:)
我认为,自动提取是更好的选择,如果您只想将更改与git工作目录合并。
如果您考虑取回拉(pull
是fetch
和merge
),则在本地应检查FETCH_HEAD
,但请考虑到FETCH_HEAD
是临时的。
另一个问题是,如果您的存储库包含子模块。