如何在保持新增工作的同时更新我当前的分支?

How do I bring my current branch up to date while maintaining added work?

所以场景是这样的:

我需要为我正在实施的一项名为 "split" 的功能工作。我创建了一个名为 split 的分支,并在其上完成了所有工作。

与此同时,有一个重大更改需要在生产中实施,所以我切换回 master,提交更改并部署它们。

现在我回到 'split' 分支工作。今天早上我重新检查了它,但现在我需要用包含我实现的重大更改的主分支来加快它的速度。

我该怎么做?

git rebase master 然后解决冲突就大功告成了。但这应该只在没有其他用户工作的非推送本地分支上完成。如果其他人可能有基于你的分支的分支,你最好将最新的主更改合并到你的功能分支中,但是使用 rebase 你可以获得更好的线性历史而不是阶梯历史。

您可以 pull master 分支以获得重大更改。

$ git checkout split                  # go to split branch 
$ git pull origin master              # pull, take the master's changes

或者,您可以 rebase。接受 masters 的所有更改并将你的提交放在 top in git log.

$ git fetch
$ git pull --rebase origin master

您需要 mergerebase master 分支到您的功能分支。

首先,您必须 commitstash 功能分支上的所有更改,以便工作目录是干净的。然后,执行 git rebase master 变基或 git merge master 合并。理解其中的区别也很好:https://www.atlassian.com/git/tutorials/merging-vs-rebasing/.