2011-08-25 7 views
13

EclipseでeGitを使って特定のブランチやタグにリベースする方法はわかっていますが、eGitを使って特定のsha1にリベースする方法が見つかりませんでした。アップストリームにプッシュする前にコミットを潰すためにこれをやりたいのです(つまり、git rebase -i HEAD~nを実行しています。ここでnは、リベースする前にコミットのいくつかの数です)。これはeGitで可能ですか?そうでなければ、私はこの機能を提供するはずの別のEclipseプラグインがありますか?eGitでgit rebase -i HEAD〜2を実行するにはどうすればよいですか?

答えて

8

EGitにはリベースがありますが、まだ対話的なリベースを要求していません。

+0

この機能の進捗状況については、次のリンクをご覧ください。 https://bugs.eclipse.org/bugs/show_bug.cgi?id=340967 https://bugs.eclipse.org/bugs/show_bug.cgi?id= 356939 –

+4

この機能はEclipse Lunaで利用可能で、既にインストール可能です。 http://m-sohn.blogspot.com/2013/11/interactive-rebase-with-egit-32.htmlを参照してください。 – torkildr

0

履歴ビューから、リベースするコミットを選択し、rebase-pointなどのブランチを作成します。あなたは今、そのブランチにリベースすることができ、必要に応じて後で削除することができます。私は一般的に、このようなものには名前付きブランチを使用する方が好きです。なぜなら、それは自分の間違いの可能性を最小限に抑えるからです。代わりに、プッシュのためにコミットを押しつぶしている場合、origin/masterがしばしば正しいrebaseポイントであると考えてください。

+0

@ KevinSawickiの回答を使って特定のコミットの上にリベースしようとすると、「Rebase did nothing、HEADはすでに最新です」というメッセージが表示されます私はこれを試してメッセージ?私はここには何かが分かっていないと思うが、私は何が分かっていないのか分からない。 – Zach

+0

うん、あなたは機能ブランチでそれを 'master'にマージする前に、あなたはあまりにも多く。 –

0

Eclipse履歴ビューからリベースすることもできます。

  • のGitリポジトリビューからリポジトリを選択し
  • を選択して右クリックし、歴史
  • 表示を選択するには、
  • 右 - の上に現在チェックアウトブランチをリベースしたいコミットRebase on Topアイテム
  • 注:を選択する必要があります。すべてのブランチとタグを表示するを履歴から最初に選択します。表示ツールバーを使用して、テーブルで探しているコミットを表示します。
+0

私は質問にこの情報を追加する必要がありましたが、これは私が最初にそれがうまくいくと思った方法です。しかし、同じブランチの前回のコミットでこれを行うと、「Rebaseは何もしなかった、HEADはすでに最新だった」というダイアログが表示されます。 – Zach

8

私が成功押しつぶしてきたがthis post(カット、ここで貼り付け)からの手順を使用してコミット:

私は最後のmは現在のブランチにコミットスカッシュしたい場合は、I

  • は、歴史の中で選択します私がスカッシュしたくない最初のコミット
  • 右クリックして "チーム - >リセット - >ソフト"と答えてください。
  • 右クリックして "コミット"と言うと、このコミットには最後のmコミットのすべての変更がまとめられます
関連する問題