是否可以加入各种提交?
这是我的情况:
我的应用程序在 OSX 10.6 和 10.7 中运行
我已经修复了 10.6 的一些内容,然后提交了,
更改为 10.7 并再次修复修复程序,以便它们兼容,然后再次提交。
然后返回到 10.6 并再次检查并再次进行小提交,等等。
(总共三到四次提交,所有这些提交都是针对同一个问题)
正如您所看到的,所有这些提交都密切相关,所以我想加入它们,这可能吗?
我还需要解决一期问题,所以我不打算合并当前的分支。
理想情况下,我希望解决的每个问题/错误只有一次提交。
EDIT:
我已经推送了我的提交,因为我必须在不同的计算机上执行此操作,但该分支尚未被其他人使用。
一种很好的互动方式是git rebase -i
。检查一个分支,查看历史记录,然后选择您想要“加入”的第一个提交之前的提交(称为挤压)。然后
git rebase -i <the commit>
在编辑器中,您将看到一份提交列表,从您选择的提交之后的提交到最近的提交。看起来像
pick 2f4b7fa Some commit message
pick 19f58bd Some other commit message
在您想要加入的提交中找到第一个提交。将这一组保留为“选择”。然后,对于所有您想要挤压的东西,将“pick”更改为“squash”或只是“s”。将提交标记为“squash”意味着它将与紧邻其之前(上方)的提交合并。然后保存退出。系统将提示您输入将创建的新提交的新提交消息。保存并退出,就完成了。请注意,您还可以使用变基视图通过打乱行来移动提交。因此,如果您有一些无序的提交,或者您需要将提交移动到一起以压缩它们,您也可以这样做。另一个注意事项:如果您已将提交推送到远程,这可能会使事情变得更糟,特别是如果您正在与从该远程拉取的其他人一起工作。
Edit:既然你已经推送了分支,并且你知道没有其他人在使用它,只需按照上述步骤操作,然后执行git push origin master -f
,假设远程仓库是“origin”并且您位于主分支上。这是正常的推送,但 -f 告诉它覆盖遥控器上的任何内容并强制应用您的更改。当您使用其他人共享的存储库时,这会变得危险和/或令人困惑。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)