git,即时压缩提交

标签 git rebase squash

我有一个本地 git 仓库,一个远程仓库。 自从上次从远程 pull 以来,我对本地存储库进行了 5 次提交。

现在我需要推送到远程。我需要压缩最后 5 次提交。

我可以通过 git rebase -i HEAD~5

但这并不好。我不想更改本地存储库中的任何内容。我想将一个压缩的提交推送到远程,并在我的本地存储库中保留 5 个未更改的提交。

有什么想法吗?

更新: 如果我有 5 次提交的本地 repo 怎么办?我需要创建新的远程仓库来与其他人共享我的代码。如何压缩这个新存储库的提交?

最佳答案

如果您只想保留您的五个提交以供引用,也许您应该在一个分支中与它们一起工作。

  1. git branch new-branch master

  2. 做你的 promise 。既然你已经这样做了,只需重置 master 的负责人:

    git reset --hard HEAD~5

  3. git merge --squash master new-branch

  4. 推送

您最终将在 masterorigin/master 上压缩提交,在 new-branch 上进行 5 次提交。

关于git,即时压缩提交,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13668943/

相关文章:

git - cygwin 无法执行 'git-add--interactive' 权限被拒绝

git - 推送功能分支时无法推送某些引用

git - 压缩 Git 中的前两个提交?

git - 如何压缩分支中的所有 merge ?

git - 除 golang.org 之外的所有源上均出现 "go get"git 错误

android - 错误 : Could not find method install() for arguments on root project of type org. gradle.api.Project

git - 我们如何通过git在windows上使用linux命令?

git - 删除 git 历史记录中具有多个分支的特定提交?

Git rebase 或 merge

git - 压缩git中分支中的所有提交