为啥 git 不定期运行 git fetch?

Posted

技术标签:

【中文标题】为啥 git 不定期运行 git fetch?【英文标题】:Why doesn't git run a git fetch periodically?为什么 git 不定期运行 git fetch? 【发布时间】:2015-08-15 15:05:41 【问题描述】:

由于git fetch 没有进行任何更改,它只是更新引用并使跟踪分支与远程分支保持同步(就像它说的是否领先和/或落后)。

我知道知道远程仓库上发生了什么非常重要。

如果 git fetch 没有破坏性。为什么 git 不只是在有互联网连接时定期运行 git fetch?

编写一个为我执行此操作的脚本是一种好习惯吗?

【问题讨论】:

Git fetch 将所有新提交从远程复制到您正在跟踪的分支中合并它们。您是否有任何自动运行的进程可以从自动 git fetch 中受益? “我可以看到知道远程仓库上发生了什么非常重要。” . . .除非不是。如果你有一个团队都在积极地处理相互依赖的代码,那么当然可以通过计时器或其他方式相互获取,但对于独立部分的工作来说,每天一次甚至每周一次更为常见。 请记住,Git 不会将工作流强加给您。你可能有零个遥控器(所以fetch 没用),或者一百个(你想fetch 来自哪个?哪个分支?你真的想在本地跟踪所有这些吗?)你可能有有时可用有时不可用的遥控器,因此自动fetching 会很困难。 Git 是一个灵活的工具,它尽量不假设您的工作流程。 @Chris,觉得这值得回答 @Biswajit_86,说得好,但我认为 bcmcfc 的回答足以说明这一点。 【参考方案1】:

归根结底,它归结为 Git 为您提供了一组工具,但您如何实际使用它的其余细节取决于用户的独特情况。

这就是为什么 git-flow 等其他项目应运而生的原因,这些项目走得更远,提供了一个久经考验的工作流程,可能适用于大量用户。

如果您想通过各种方式定期获取,请编写一个执行此操作的 cron。这就是 git 的强大之处——它是一套可靠的工具,如果你想以某种方式扩展它,你可以。

但是,也许这不是一个好主意。多久定期一次?如果您要推送并且您的脚本在同事推送到同一分支之前一分钟最后一次获取,那么它将拒绝您的推送,并且您必须无论如何都必须获取、拉取、合并、变基等。

【讨论】:

【参考方案2】:

实际上是can(现在):

VS Code 能够定期从您的遥控器中获取更改。这 使 VS Code 可以显示您的本地存储库有多少更改 在遥控器前面或后面。从 VS Code 1.19 开始,这个特性 默认情况下禁用,您可以使用git.autofetch 设置 启用它。

【讨论】:

以上是关于为啥 git 不定期运行 git fetch?的主要内容,如果未能解决你的问题,请参考以下文章

使用 react 定期运行 fetch

Git

运行基本 git 命令(如“git fetch”)时出现 kex_exchange_identification 错误

很多Linux/Git/SQL命令脚本,太久没用,忘了

git基础教程(27)远程仓库与git fetch

从git pull和git fetch到txt文件中回显git消息/输出