我有一个本地git仓库,一个远程仓库。 自从最后一次从遥控器拉出来之后,我向本地回购做了5次提交。
现在我需要推送到远程。我需要压缩我最近的5次提交。
我可以通过git rebase -i HEAD~5
但这并不好。我不想在我的本地仓库中改变任何东西。我想将一个压缩的提交推送到远程,并在我的本地仓库中保留5个未更改的提交。
有什么想法吗?
UPD: 如果我有5个提交我的本地回购怎么样?我需要创建新的远程仓库以与他人共享我的代码。如何压缩这个新回购的提交?
答案 0 :(得分:5)
如果您只想保留五个提交以供参考,也许您应该与他们一起工作。
git branch new-branch master
做你的提交。既然你已经这样做了,只需重置主人头:
git reset --hard HEAD~5
git merge --squash master new-branch
git push
您最终会在master
和origin/master
以及new-branch
上的5次提交中压缩提交。
答案 1 :(得分:1)
来自Titas answer的轻微变化,未触及您的master
分支,并挤压新分支(您将推送到新的仓库)
git remote add newrepo url://of/your/new/repo
git checkout -b newbranch master
git merge --squash master
git push -u newrepo newbranch:master
但这会在你的新回购中推动掌握+1(压扁)提交的完整历史。
如果你想要一个分支新的历史记录,你的回购在5个新提交之后,它会更容易:
.git
git init.
(即,从所有现有文件重新创建新的本地git仓库),