由于潜在的合并冲突,没有自动“更新所有内容”的好方法。因为这意味着没有简单的“始终保持最新”的好方法,所以下一个要回答的问题是:为什么需要更新?
如果您需要他们进行代码审查,那么
git remote update
紧随其后
git log refs/remotes/<remote-name>/<branch-name>
将让您检查其他人发送的提交。
如果您想将它们与您所做的更改集成(您提到变基),那么您只需要在实际对分支进行工作之前进行更改。因此,一旦您检查了要处理的分支(并假设您现在已准备好集成更改 - 不要无缘无故地集成!准备好时集成! )
git pull --rebase <remote-name> <remote-branch-name>
将从 获取 ,然后对其进行 rebase。它实际上是(并且等同于)运行的快捷方式:
git fetch <remote-name> <remote-branch-name> &&
git rebase <remote-branch-name>
您还可以为任何给定分支设置默认的上游远程/分支,这样您就可以简单地输入
git pull --rebase
未来。这对于运行时间较长的主题很有用。要设置默认值,请使用:
git branch --set-upstream <local-branch-name> <remote-name>/<remote-branch-name>
总之就是:
对于您要更新的每个分支,需要注意的是,我通常建议不要简单地遍历每个分支,直到您真正准备好对其进行工作。
如果“master”正在积极开发中,“remote-master”正在积极开发中(并且应该rebased-to),而“task_one”和“task_two”是基于“master”,而不是直接基于“ remote-master”,只从“master”而不是任何任务分支中提取 --rebase 可能是有意义的,而是在 master 之上重新设置这些分支。例如:
- git checkout master
- git pull --rebase master
- git checkout
- git rebase master
虽然真的, git pull --rebase master 与偶尔的 git rebase master 混合,很可能“做正确的事”,这取决于你历史的复杂性。不要依赖它,但要意识到这种可能性。了解“git patch-id”和“git rebase”如何交互,以及“git rebase”如何在您的工作流程基于该简化之前进行合并,但取决于您的工作流程,这可以为您节省几个步骤。