Git:当远程跟踪分支发生变化时,如何自动更新我的本地分支?

pat*_*rit 10 git shell

我想在后台运行一些东西,基本上git pull --rebase只要在我的远程分支中发生一些变化.如果没有冲突,大多数时候它在后台静默工作.在一场冲突中,它只会让我处于rebase-resolve-conflict阶段,直到我解决它等待的所有事情.我该怎么做呢?是否有现有的软件已经这样做了?

Ort*_*kni 5

如果您无法控制远程存储库,一种解决方案是使用crontab定期运行git fetch,甚至可以git pull --rebase按照您的建议运行.选择的确切命令取决于您的工作流程,我个人更喜欢使用a,git fetch因为我可以决定何时以及如何合并或变基.

要定期运行命令运行:

crontab -e
Run Code Online (Sandbox Code Playgroud)

并添加一行如:

* * * * * git -C PATH_TO_LOCAL_REPO fetch
Run Code Online (Sandbox Code Playgroud)

要么

* * * * * git -C PATH_TO_LOCAL_REPO pull --rebase
Run Code Online (Sandbox Code Playgroud)

这将使用您的用户权限每分钟运行一次git命令.

如果要在存储库列表中应用git命令,可以添加以下行:

* * * * * /home/myself/scripts/git-refresh.sh
Run Code Online (Sandbox Code Playgroud)

其中git-refresh是一个适用于所有存储库的脚本.

-C选项允许您在不更改目录的情况下运行git命令.从手册页:

-C <path>

运行就像启动git而不是当前工作目录一样.