如何在保持新增工作的同时更新我当前的分支?
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
您需要 merge
或 rebase
master 分支到您的功能分支。
首先,您必须 commit
或 stash
功能分支上的所有更改,以便工作目录是干净的。然后,执行 git rebase master
变基或 git merge master
合并。理解其中的区别也很好:https://www.atlassian.com/git/tutorials/merging-vs-rebasing/.
所以场景是这样的:
我需要为我正在实施的一项名为 "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
您需要 merge
或 rebase
master 分支到您的功能分支。
首先,您必须 commit
或 stash
功能分支上的所有更改,以便工作目录是干净的。然后,执行 git rebase master
变基或 git merge master
合并。理解其中的区别也很好:https://www.atlassian.com/git/tutorials/merging-vs-rebasing/.