我想在后台运行一些东西,当我的远程分支发生某些变化时,基本上会运行git pull --rebase
。如果没有冲突,大多数时候它在后台静默工作。在一场冲突中,它只会让我处于rebase-resolve-conflict阶段,直到我解决它等待的所有事情。我该怎么做呢?是否有现有软件已经执行此操作?
答案 0 :(得分:5)
如果您无法控制远程存储库,则一种解决方案是使用crontab定期运行git fetch
,或者甚至可以按照您的建议运行git pull --rebase
。确切的选择命令取决于您的工作流程,我个人更喜欢使用git fetch
,因为我可以决定何时以及如何合并或变基。
定期运行命令:
crontab -e
并添加一行,例如:
* * * * * git -C PATH_TO_LOCAL_REPO fetch
或
* * * * * git -C PATH_TO_LOCAL_REPO pull --rebase
这将使用您的用户权限每分钟运行一次git命令。
如果要在存储库列表中应用git命令,可以添加以下行:
* * * * * /home/myself/scripts/git-refresh.sh
其中git-refresh是一个适用于所有存储库的脚本。
-C
选项允许您在不更改目录的情况下运行git命令。来自man page:
-C <path>
像启动git而不是当前工作目录一样运行。
答案 1 :(得分:0)
此过程称为同步分叉
同步存储库的分支以使其与上游存储库保持同步。不幸的是,GitHub没有任何自动同步功能。但是,在服务器上添加作为cron作业是微不足道的,这样你就不必手动完成它。例如:
cd / srv / mirrorrepo; git fetch upstream master; git push origin master
以下插件可能会有所帮助