如何在eGit中执行相当于git rebase -i HEAD~2的操作?

时间:2011-08-25 21:04:06

标签: eclipse git egit

我知道如何在Eclipse中使用eGit重新绑定到特定的分支或标记,但我还没有找到使用eGit重新绑定到特定sha1的方法。我想这样做是为了在推送到上游之前压缩提交(即,执行git rebase -i HEAD~n,其中n是我想要重新绑定的一些提交数量)。这可能与eGit有关吗?如果没有,是否有另一个我应该使用的Eclipse插件可以提供此功能?

5 个答案:

答案 0 :(得分:8)

EGit有rebase,但它还没有你要求的交互式rebase。

答案 1 :(得分:8)

我使用this post中的步骤成功压缩了提交(剪切并粘贴在此处):

如果我想在当前分支上压缩最后一次m次提交,那么我

  • 在历史记录中选择我不想压缩的第一个提交
  • 右键单击并说出" Team-> Reset-> Soft"
  • 右键单击并说出" Commit"。此提交将包含最后m次提交的所有更改

答案 2 :(得分:1)

它目前在Eclipse Oxygen中可用,它具有自己的向导。

  1. History视图中获取所需的分支
  2. 右键单击要更改的之前的提交
  3. 找到Rebase interactive并单击它
  4. Rebase向导将显示可用的提交

它的工作方式与控制台版本相同,但在GUI上。即使发生冲突,它也会帮助您解决问题。

答案 3 :(得分:0)

从历史记录视图中选择要重新绑定到的提交,并创建一个名为rebase-point或其他的分支。瞧,你现在可以改装到那个分支,如果你愿意,可以在以后删除它。我通常更喜欢在这样的事情上使用命名分支,因为它最大限度地减少了我犯错误的可能性。或者,考虑到origin/master通常是正确的重制点,如果你正在压缩提交推文。

答案 4 :(得分:0)

您也可以从Eclipse History视图中进行rebase。

  • 从Git Repositories视图中选择存储库
  • 右键单击并选择在历史记录中显示
  • 上选择要为当前签出的分支重新定位的提交
  • 右键单击并选择 Rebase on 项目
  • 注意:您可能需要先从“历史记录”视图工具栏中选择显示所有分支和标记,以在表格中显示您要查找的提交。