ローカルコミットのグループをIDEAのシングルプッシュに組み合わせる方法は?


86

IDEAでは、いくつかのコミットをプッシュしようとしています。

リモートサーバーでは、シングルアクションのように見えるという要件があります。

クリックしてプッシュすると、次のウィンドウが表示されます ここに画像の説明を入力してください

ここにスカッシュチェックボックスが表示されると思っていましたが、表示されません。

私を助けてください。


2
IDEAにアドバイスを与えることはできませんが、押しつぶしはインタラクティブなリベースまたはマージの一部であり、コミットではありません。そこを見てみてください。
musiKk 2014年

回答:


117

あなたはリベースを使用してそれを行うことができます。行くVCS / Gitリポジトリ/リベース。次に、インタラクティブオプションを選択します。コミットのリストが表示され、押しつぶしたいコミットを選択できます。

あなたがヒットした後リベーススタートをコミット押しつぶさためのメッセージをコミットするために、それはあなたを求めるメッセージが表示されます。その後、プッシュダイアログを使用して押しつぶされたコミットをプッシュできます。

スカッシュダイアログ

IntelliJでのリベースの詳細については、こちらをご覧ください


9
このGitTools-Rewriting Historyの記事を読んで、「Rebasebranch」ダイアログの「Ontofield」に何を入力するかを知ることも役立つかもしれません。 たとえばHEAD~3、最後の3つのコミットを選択するために使用できます。
TmTron 2016

たくさんのコミットを一緒に押しつぶすと、それらの各コミットの個々の詳細が失われますか?それは1つの大きなコミットのように見えるだけですか?
ycomp 2017年

@ycompはい、インタラクティブリベースは履歴を書き換えるため、個々の押しつぶされたコミットは失われ、代わりに新しい単一のコミットが作成されます。
Bohuslav Burghardt 2017年

ありがとう、スカッシュを元に戻すことはできますか?
ycomp 2017年

@ycomp私は実際にそれをしたことはありませんが、それは可能であるはずです。以下のSOの記事を参照してください:stackoverflow.com/q/10260151/1291150stackoverflow.com/q/134882/1291150
Bohuslav BURGHARDT

35

新しい方法があります:

バージョン管理->ログ->コミットを右クリック->Interactively rebase from here次に、残りのコミットを選択/破棄することを選択できます。


1
このアプローチの問題は、複数のコミットに対して「スカッシュ」を選択する方法がなく、1つずつ実行するのが面倒になることです。
Dmitry Serdiuk 2018

4
@DmitrySerdiukシフトクリックしてスカッシュしたいコミットを選択し、右クリック->スカッシュを選択できます。
Aarjav

1
@Aarjav OH MY GODこれはまさに私が欠けていると思ったものです!ダイアログの右クリックメニューに関するヒントはありません。
o_nix

21

私にとって、intellijを使用する最も簡単な方法は次のとおりです。

  • Logタブに移動し、押しつぶしたいコミットを選択します
  • 右クリックして選択します Reset Branch to this commit
  • mixinコミットからの変更を保持するオプションを選択します
  • 変更をコミットし、Amend commitオプションをチェックすることを忘れないでください

1
これは確かに最も簡単な方法であり、ストレスが少なく、エラーが発生しにくいと思います。
davrog 1019

2
ステップ3Softでは、Mixedすべての変更をコミット用にステージングするのではなく、オプションを選択する方がよいことをお勧めします。
provisota
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.