【问题标题】:squash more then two commits in sourcetree?在 sourcetree 中压缩两个以上的提交?
【发布时间】:2014-08-03 07:58:03
【问题描述】:

自从我上次推送到 origin/master 以来,我已经完成了大量的提交,大约 20 次。我从来没有超过一个分支,master,所有的提交都是在 master 上完成的。如何将所有 20 个提交压缩为一个提交,最好使用 sourcetree?我想这样做,这样我就可以将一个提交推送到 origin/master。

在 sourcetree 中,我已经想出在存储库菜单中使用交互式 rebase 命令。它显示了我想要压缩的提交的确切列表。我尝试反复点击壁球按钮,直到它显示一个包含所有这些的提交。但是当我点击 OK 时,我最终只压缩了最近的两个提交。因此,即使对话框似乎显示它可以在实践中压缩多个,我也无法让它工作。

【问题讨论】:

标签: git atlassian-sourcetree squash


【解决方案1】:

更简单的解决方案(比变基):

在日志条目中选择“origin/master”提交,点击“Reset <branch> to this commit”。

使用默认的混合模式。

然后添加并提交:您的所有更改将在一个新提交中再次注册,您将能够推送。

请参阅git reset Demystified 了解更多信息。

【讨论】:

  • 谢谢,成功了。所以我猜它会将自起源以来的所有更改都转移到工作副本中?这是正确的吗?
  • @mark-hahn 它重置了索引,同时保持你的工作树完好无损,允许你在新的提交中再次注册 所有 修改。
  • 哦,我明白了。它将它们放入已提交的索引中。我习惯于直接从工作区提交。也许我还是不明白。我会继续研究这个。
  • @mark-hahn 是的,git-scm.com/blog/2011/07/11/reset.html 是了解git reset 的好资源。
  • 我可以使用像this answer这样的软模式吗?有什么区别?
猜你喜欢
  • 1970-01-01
  • 2010-10-10
  • 2023-01-12
  • 2017-07-20
  • 1970-01-01
  • 2010-12-16
  • 2022-07-21
  • 1970-01-01
  • 2017-07-20
相关资源
最近更新 更多