我使用多个分支,但我只修改其中一个分支(我将其命名为working
)。我希望能够获得working
的最新版本,同时也获得所有跟踪分支的最新版本。由于其他跟踪分支很少被修改,因此它们通常可以快进。
我希望git-pull可以做到这一点,但这并没有达到我想要的结果:
git checkout working
git pull --ff-only --all
我的本地main
分支未被修改:它仍然在远程分支X1 M3 N1 X之后。
我可以强制更新到main:
git br -f main mine/main
但是我更喜欢一些自动的和更安全的东西,这样它只修改分支,如果它可以安全地快进。然而,我实际上不想检查分支,因为我没有积极地工作,不打算合并。
在Can "git pull --all" update all my local branches?上有很多脚本,但是这个问题是关于一个内置在git中的解决方案。
1条答案
按热度按时间mf98qq941#
你可以说
一次更新所有远程跟踪分支。
这样做时不会更新任何 local 分支,也没有快捷方式;你必须一次做一个。2但是你不需要为了更新它而切换到每个分支;你可以呆在原地,但要说
更新当前不在的分支(但您仍需要对每个分支单独执行此操作)。使用该命令指定的本地分支将被更新,但前提是它可以被快进。
有一堆关于
git pull --all
是否可以更新我所有的本地分支?的脚本,但这个问题是关于git内置的解决方案。你可能没有从这些答案中得到信息,他们告诉你的是git中 * 没有 * 这样的解决方案;你必须写一个脚本才能做到。
相关但无帮助
同样,你可能没有得到信息。它是有帮助的。你可能不喜欢它告诉你的东西,但是真相并不在乎你喜欢什么--它告诉你的就是真相。
还有一点:你可能维护了太多的本地分支机构。我 * 从来 * 没有建立一个本地分支机构,除非我正在积极地发展它(或者除非我需要将另一个分支合并到其中,但这种情况很少发生,因为合并是通过远程的pull请求完成的),并且我在本地分支合并后立即删除它。因此,* 我从来没有pull*。我只是不时地
git fetch
,如果我需要查看远程分支上发生了什么,我会直接检查相应的远程跟踪分支,而不创建本地分支版本。