两周前,我创建了一个新分支,我们称它为exp
。在此期间,exp
和 master
中都有几次提交。在此期间,exp
尚未更新 master
现在我想把所有从 exp
到 master 的更改都保存下来,而不丢失我的整个历史记录(即我不想在 master
中只提交一次所有的更改,而是我在 exp
中的所有提交都出现在 master
的历史记录中)
这怎么可能?我调查了Rebase但是当我这样做时:
git checkout exp
git rebase master
在过程结束时,我在 exp
中,当我 git status
时,我看到我在 exp
中所做的所有提交为如果我想再次将它们 push exp
最佳答案
您的目标是让 master
历史中 exp
中的所有提交并保留您的所有提交。无论您使用 git merge
还是 git rebase
,您都可以实现这一点。
merge :
git checkout master
git pull
git checkout exp
git merge master
git push -u origin exp
执行第 2 步,以便您 pull 最新的 master
并进行最新的更改。
重置:
git checkout exp
git pull --rebase origin master
git push -u origin exp
如果您不想在此过程中更新您的本地master
,您可以选择执行以下步骤:
git checkout master
git pull
git checkout exp
git rebase master
git push -u origin exp
请注意,当您git pull --rebase origin master
时,您的更改是基于origin
的master
的最新版本.此外,此命令不会更新 master
的本地副本。
注意:如果您正在使用 git rebase
,您可能需要强制推送 (git push -f origin exp
)。
关于Git rebase/master 从分支更改为 master,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38010726/