一个很好的互动方式是git rebase -i
。查看一个分支,查看历史记录,然后在第一次提交之前选择一个您想要“加入”的提交(称为压缩)。然后
git rebase -i <the commit>
在编辑器中,您将您选择的最近的一个后立刻显示从一个提交列表。它看起来像
pick 2f4b7fa Some commit message
pick 19f58bd Some other commit message
找到你想加入的第一个提交。让那一套去“挑选”。然后,对于所有想要压缩的那些,请将“pick”改为“squash”或“s”。标记提交“压扁”意味着它将立即与之前(之上)的提交相结合。然后保存并退出。系统会提示您为将要创建的新提交提交新的提交消息。保存并退出,你就完成了。请注意,您也可以使用分层视图来移动周围的提交。所以,如果你有一些失败的提交,或者你需要将提交移动到一起压缩它们,你也可以这样做。另外需要注意的是:如果您将提交内容推送到远程,那么这可能会让事情发生变化,特别是如果您正在与从该远程计算机上拔出的其他人一起工作。
编辑:既然你已经被推分支已经,你知道没有其他人在使用它,只要按照上面的步骤,然后做一个git push origin master -f
,假设远程回购的“原产地”和你”在主分支上。这是一个正常的推动,但-f告诉它覆盖遥控器上的任何内容,并强制应用您的更改。当你从其他人共享的回购工作时,这会变得危险和/或令人困惑。
为什么我得到“-1”? – nacho4d
同意。为什么是-1?这是一个合理的问题,尤其是来自新的git用户。 –
给予好评否定-1 – rasjani