GIT:如何压缩已被推送到远程仓库的几个提交?

wei*_*wei 16 git

我和Git有一个奇怪的设置.基本上我有:

[client 1] <---> [remote repo] ----> [client 2]
Run Code Online (Sandbox Code Playgroud)

[客户端1]本质上是我正在使用的本地仓库,因为我无法在本地机器上编译/构建项目.

[客户端2]是用于构建的远程服务器.

在中间,我有另一个回购,[远程回购],基本上用于与我公司的cvs中央回购同步,并且还在我的[客户端1]和[客户端2]之间进行同步.

由于所有编译/构建都在[客户端2]上完成,因此我在[客户端1]上进行了许多简单的提交,只是为了修复编译或构建错误.

所以当我发现最后一次提交时出现错误时,已经太晚了,因为提交已经被推送到远程仓库并从中撤出.

我怎样才能将这些(很多)琐碎的提交压缩成一个?谢谢.

man*_*lds 27

首先,避免挤压和一般重写历史,除非你绝对必须.进行"微不足道的"提交并不是压制推送提交的理由.如果他们能留下来,就让他们留下来.并且在cvs中重写历史并不简单,所以既然这些提交已经进入了cvs repo,你应该忍受它.

对于git远程仓库,如果你想继续 - 我假设你知道要压缩你当地仓库的提交(git rebase -i很简单).壁球后,推-f- 推力.


Cha*_*esB 14

你可以用git rebase -i或者压缩提交git merge --squash,看看使用Git将我最后的X提交压缩在一起

但是,由于您已将它们发布到另一个存储库,因此您必须将其修复到其他存储库.相当麻烦,但是git push --force你需要的命令.

但是不建议:如果远程仓库已经与CVS同步,你也必须修复它......如果其他开发人员已经从它中撤出了同样的事情.