以编程方式检查git是否有新版本,然后拉

乔纳斯·格伦贝克

我有一个运行nginx的digitalocean液滴来提供我的html文件,并使用rest-api将URL重定向到后端。

当我想更新服务器上的前端或后端时,我需要进行以下繁琐的过程:将后端或前端拉入服务器,如果前端先构建然后重新启动服务,则将其拉入后端。我正在寻找一种以某种方式自动执行某些步骤或全部步骤的方法。有没有什么技术可以帮助您?

罗伯特·帕拉克

您可以编写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

该解决方案是只(对于exapmle一个分支your_branchmaster)。如果您愿意,我可以为您编写完整的脚本,该脚本将检查所有本地分支是否与远程分支同步。我想要python中的脚本,但是bash也是一种选择。

BTW

我认为自动拉车不是一个好的解决方案。如果您有未提交的更改怎么办?藏起来,拉后套用吗?如果您尚未发布提交怎么办?您应该只进行纯拉动还是使用变基拉动?使用抓取您不会遇到此类问题:)我认为,自动抓取是更好的选择,如果您只想将更改与git工作目录合并。如果您考虑提取而不是pull(pullis fetchand merge),则应在本地检查FETCH_HEAD,但请注意这FETCH_HEAD是临时的。

另一个问题是,如果您的存储库包含子模块。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何以编程方式检查python软件包是否为最新版本?

Java以编程方式检查最新版本

检查是否有较新版本的Docker映像可用

节点:以编程方式检查软件包的最新版本

Git CI - 如何检查特定文件在新版本上是否更改?

github动作:如何检查当前推送是否具有新标签(是新版本)?

如何检查Gradle依赖项是否具有新版本

检查android应用在playStore上是否有较新版本

如何检查sbt / play / activator项目中是否有较新版本的库依赖项

Flutter (web):如何检查是否有新版本的应用可用?

是否有Java代码约定的更新版本

最新版本的LibreOffice是否有PPA?

是否有tf.placeholder的新版本?

dockerfile中的FROM指令是否始终拉取映像的最新版本

Github 页面是否具有访问和缓存来自 API 的最新版本的内置方式?

使用 go get 检查是否有新版本的基于 go 的二进制文件可用

如何在Swift5的App Store中检查我的应用程序是否有新版本?

如何以编程方式升级(或通知)外部工具的新版本?

如何在Android最新版本中以编程方式执行UiAutomator测试用例

将git快捷方式与新版本一起使用,以覆盖旧版本

如何知道我是否具有文件的最新版本[git lfs lock工作流程]

Phonegap不会拉最新版本

是否发布了C ++标准的新版本?

纱线升级-是否保存了新版本?

检查是否已加载angular并用最新版本覆盖

选择最新版本的 Laravel 而不是 LTS 版本是否有风险?

是否有任何与 firefox 最新版本兼容的 webdriver 版本(3.0.0 以上)?

有什么新版本的Weinre吗?

如何在应用商店中检测MobileFirst iOS应用的新版本并以编程方式直接更新?