我有一个本地git仓库,一个远程仓库.自从上次从远程拉出以来,我向本地回购做了5次提交.
现在我需要推送到远程.我需要压缩我最近的5次提交.
我可以做到 git rebase -i HEAD~5
但这并不好.我不想在我的本地仓库中改变任何东西.我想将一个压扁的提交推送到远程,并在我的本地仓库中保留5个未更改的提交.
有任何想法吗?
UPD:如果我的本地仓库有5次提交怎么办?我需要创建新的远程仓库以与他人共享我的代码.如何压缩这个新回购的提交?
如果您只想保留五个提交以供参考,也许您应该与他们一起工作.
git branch new-branch master做你的提交.既然你已经这样做了,只需重置master的头部:
git reset --hard HEAD~5
git merge --squash master new-branchgit push您将结束与压扁提交上master和origin/master和5条上new-branch.
与Titas的答案略有不同,无需触及您的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
Run Code Online (Sandbox Code Playgroud)
但这会将 master 的完整历史记录、+1(压缩)提交推送到您的新存储库上。
如果您想要一个分支新历史记录,并在 5 个新提交之后使用您的存储库,则更容易:
.git该本地克隆中的git init.(即,从所有现有文件重新创建一个新的本地 git 存储库),| 归档时间: |
|
| 查看次数: |
171 次 |
| 最近记录: |