使用 git 自动更新应用程序

发布于 2024-12-06 07:02:32 字数 163 浏览 0 评论 0原文

有没有办法使用 git 作为应用程序的自动更新机制。就像 google chrome 所做的那样(或 Mac 上的 Github)。

我想创建一个包含整个应用程序(包括二进制文件)的中央 git 存储库,并且能够使应用程序在后台从存储库中提取更改。新版本应在下次启动时安装。

谢谢

is there any way to use git as an automatic updating mechanism for applications. something like what google chrome does (or Github for Mac).

I want to create a central git repo that contains the whole app (including binaries) and be able to make the application pull in changes from the repo in the background. The new version should be installed on the next start.

Thanks

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

乖乖 2024-12-13 07:02:32

我制作了一个使用 Git 作为自动更新程序的 java 程序。该程序的作用是检查 CurrentVersion.txt 的原始文本。如果该数字大于程序版本,则会从 git 存储库下载更新程序。然后,更新程序充当版本之间的媒介,删除旧版本并用新下载的版本替换它。这很简单。

I made a java program that uses Git as an autoupdater. What the program does is that it checks the raw text of a CurrentVersion.txt. If the number is greater than the program version, it downloads an updater from the git repo. The updater then acts as a medium between the versions and deleting the old version and replacing it with the newly downloaded one. It was pretty simple.

寄与心 2024-12-13 07:02:32

你不是在回答你自己的问题吗?在应用程序启动时进行 Git pull。 git pull 之后,您可以运行一些脚本来执行特定于更新的操作。

如果您有一个 Web 应用程序,我不会对您的应用程序的每个请求执行此操作,而是在每 N 分钟运行一次的 cron 作业中执行此操作。

Aren't you giving the answer to your own question? Git pull on startup of your application. After a git pull you could run some scripts to execute update-specific actions.

If you've got a webapplication I wouldn't do this on each request to your application, but in a cron job that runs every N minutes.

尽揽少女心 2024-12-13 07:02:32

它可能看起来是一个好主意,因为 git 在存储文件增量方面非常有效,但之后就不是了:你必须将 git 嵌入到你的应用程序中。不确定这是可取的。

最好看看 courgette,Chrome 的自动更新机制(仅限对于 Windows AFIK),以及 标签

It could look like a good idea, since git is quite efficient at storing files delta, but after it's not: you'd have to embed git with your application. Not sure it is desireable.

Better look at courgette, the Chrome's auto-update mechanism (only for Windows AFIK), and the most voted answers to tag

冰雪之触 2024-12-13 07:02:32

如果您使用的是 Windows 计算机,您可以使用我的 图形解决方案

或创建一个 DOS 批处理文件我这样做的方式
这是我的解决方案

    rem first install GIT Bash
rem then add C:\Program Files\Git\bin to the environment variable PATH and reboot you PC
set VisualStudioVersion=2012
set VisualStudioName=Visual Studio %VisualStudioVersion%
cd \
cd %userprofile%
cd "Documents"
cd %VisualStudioName%
cd "Projects"
echo Press a key to update all choosen git repositories if you're in the correct directory otherwise press CTRL-C to cancel
pause
cd AddFeatures
git pull origin master
cd ..
cd CodeGeneration
git pull origin master
cd ..

If you're on Windows machine, you can use my graphic solution

Or create a DOS batch file the way I did it
Here is my solution:

    rem first install GIT Bash
rem then add C:\Program Files\Git\bin to the environment variable PATH and reboot you PC
set VisualStudioVersion=2012
set VisualStudioName=Visual Studio %VisualStudioVersion%
cd \
cd %userprofile%
cd "Documents"
cd %VisualStudioName%
cd "Projects"
echo Press a key to update all choosen git repositories if you're in the correct directory otherwise press CTRL-C to cancel
pause
cd AddFeatures
git pull origin master
cd ..
cd CodeGeneration
git pull origin master
cd ..

您始终可以采取解决方法,例如服务器中的文本文件,该文件将存储最新版本。在软件启动时,下载此文件,验证文件版本是否与已安装软件的版本不同,然后下载新版本安装程序并运行它。

实施起来非常简单...

you always can make a workaround like a text file in server, that will store the last version. On your software startup, download this file, verify if version of file is different from version of installed software, and do the download the new version installer and run it.

is quite simple to implement...

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文