是否可以加入各种提交?
这是我的情况:
我的应用程序在OSX 10.6和10.7中运行,因此我修复了10.6然后提交的一些内容,更改为10.7并再次修复了修复程序以便它们兼容,然后再次提交.然后回到10.6并再次检查并再次进行一次小型提交等(总共提交三次或四次提交,所有这些提交都是针对同一问题)
如你所见,所有这些提交密切相关,所以我想加入他们,这可能吗?
我仍然需要再处理一个问题,所以我不打算合并当前的分支.理想情况下,我希望每个问题只有一个提交/我解决的bug.
编辑:
我已经推送了我的提交,因为我必须在不同的计算机上执行此操作,但该分支未被其他人使用,尚未使用.
Rya*_*art 15
一个很好的,互动的方式是git rebase -i.检查一个分支,查看历史记录,然后选择一个提交,这个提交是在你想要"加入"的第一次提交之前(它被称为压缩).然后
git rebase -i <the commit>
Run Code Online (Sandbox Code Playgroud)
在编辑器中,您将看到一个提交列表,从您选择的提交到最近的提交之后.看起来像
pick 2f4b7fa Some commit message
pick 19f58bd Some other commit message
Run Code Online (Sandbox Code Playgroud)
找到您要加入的第一个提交.留下一组"挑选".然后,对于你想要压缩的所有那些,将"pick"改为"squash"或只是"s".将提交标记为"压缩"意味着它将在紧接其之前(上方)与提交相结合.然后保存并退出.系统将提示您为将要创建的新提交提供新的提交消息.保存并退出,你就完成了.请注意,您还可以使用rebase视图通过改变周围的线来移动提交.因此,如果您有一些无序的提交或者您需要将提交移到一起来压缩它们,您也可以这样做.另一个注意事项:如果你已将你的提交推送到遥控器,这可能会让事情变得更糟,特别是如果你正在与那些从那个遥控器上拉的人一起工作.
编辑:既然你已经推动了分支,并且你知道没有其他人正在使用它,只需按照上面的步骤,然后做一个git push origin master -f,假设远程仓库是"原点"而你在主分支上.这是正常推送,但-f告诉它覆盖遥控器上的任何内容并强制应用您的更改.当你从别人共享的回购中工作时,这会变得危险和/或令人困惑.