将本地git提交历史到源分支

将本地git提交历史到源分支,git,Git,我一个人做这个项目。我在git日志中提交了5次。我将这些提交合并为一个 git rebase -i HEAD~5 pick xxxx commit1 squash xxxx commit2 squash xxxx commit3 squash xxxx commit4 squash xxxx commit5 现在我在git log中有一个提交。一切都很好。但是我在git status之后有下一条消息: Your branch and 'origin/master' have diverged,

我一个人做这个项目。我在git日志中提交了5次。我将这些提交合并为一个

git rebase -i HEAD~5
pick xxxx commit1
squash xxxx commit2
squash xxxx commit3
squash xxxx commit4
squash xxxx commit5
现在我在
git log
中有一个提交。一切都很好。但是我在
git status
之后有下一条消息:

Your branch and 'origin/master' have diverged,
# and have 1 and 5 different commits each, respectively.
我必须执行
git pull
,但在那之后,我将再次将
git日志重写为5次提交(我想)


长话短说,如何将本地git提交历史推送到origin分支并消除分歧错误?

您需要合并origin/master

git merge origin/master

您可以将您的历史版本强制加载到源:

git push origin master --force

但请注意,重写git历史记录是不受欢迎的:

我的历史记录会再次提交到5次提交吗?我想避免这种情况。不,实际上你将要更新origin,现在你刚刚在合并后更新了本地存储库,然后你就可以推到origin了。这不会像你说的那样,也无助于OP。这不会更新origin,这首先会将五个提交带回本地master(这正是不应该发生的事情),如果你接着推,那是没有用的,因为这是OP想要摆脱的历史。你想挤压已经发布的提交吗?然后检查