web-dev-qa-db-ja.com

EclipseおよびEGit:* local *リポジトリーにコミットする前に、変更されたすべてのファイルへの変更を簡単に確認する方法

Eclipse Indigo SR2を(ビルトイン)EGitプラグインv.1.3.0.201202151440-rで使用していますが、コミットする前にすべての変更を簡単に確認する方法を見つけることができませんでした。

私は長年にわたってSVNでEclipseを使用していましたが、これは常に非常に簡単でした。通常、プロジェクトを右クリックし、Team->Synchronizeを選択し、最初に変更されたファイルを(Team Syncパースペクティブで)ダブルクリックしてから、 Ctrl-. コミットメッセージの変更の概要を書いたので、繰り返し1つのファイルのすべての変更を確認し、次のファイルに進みます。

しかし、もちろん、gitはSubversionとは大きく異なるため、ワークフローを変更する必要があります。 EGitを使用すると、「チーム同期」は、ローカルファイルとリモートリポジトリとの間の変更(つまり、リモートへのプッシュの前)を確認する場合にのみ役立つようです。 localリポジトリに最後にコミットしてからの変更を確認する方法が必要です。私は通常、リモートへのプッシュの前に変更を(再)レビューすることすら気にしません(もしそうなら、プッシュしようとしているコミットを見るためにgit logの単純な同等物を好むでしょう)。

プロジェクトを右クリックしてTeam->Commitを選択すると、almost必要なすべて(ステージングするファイルの選択、コミット、コミットメッセージの書き込み、以前のコミットを修正するなど)。 しないできることは、比較エディターですべての変更をすばやく簡単に確認することです。この機能が存在しないとは信じられません!各ファイルをダブルクリックし、変更を確認し、比較エディターを閉じて、次のファイルをダブルクリックする必要があるようです。それはばかげている!

TL/DR-git vimdiff(vimdiffは "difftool"としてvimdiffを使用するgitエイリアスです)を使用してコマンドラインから簡単にできることを行うために、(Eclipseで)簡単なGUIを探しています変更されたすべてのファイルを循環する)、git commit(おそらくgit addまたはその間に2つ)が続きます。

誰も良い解決策がない場合、他の人がEGitでコミットワークフローをどのように処理するのか興味があります。私はコマンドラインからうまくコミットしていました(Eclipseがそれについて満足しているわけではありません)が、EGitが私にとってはほとんど役に立たないと信じることはできません。おそらく、私のgoogle-fuは以前ほど強くありませんか?

41
Lambart

「Gitステージング」ビューを知っていますか。変更されたすべてのファイルを追跡し、いつでも変更を確認できます。 (これはコミットダイアログを使用するよりも少し良いかもしれません)

別の方法は、レビューせずにすべての変更をコミットし、履歴ビューを使用して2つのコミットを比較することです(最後の一番上のコミットを選択し、右クリックして[相互に比較]を選択します)。これにより、個々のファイルをダブルクリックする必要がなくなります。何かを変更する必要がある場合は、最後のコミットをいつでも「修正」できます。 (私は通常、このアプローチに従います)

26
Deepak Azad

here は、作業ツリーと任意の参照との差分を見ることができると言います。おそらく、Eclipse/EGitの最新バージョン(Juno)を試して、それが改善されたかどうかを確認する必要がありますか?

更新:最新のEclipseでこれを試してみましたが、できる限りうまく動作していることがわかります。方法は次のとおりです:

これを書いている瞬間、Eclipse Juno 4.2はあなたが行くべきバージョンです。ダウンロードページで、必要に応じて複数のパッケージから選択できます。 'Eclipse IDE for Java Developers'はEGitにバンドルされていますが、Eclipse Marketplace(ヘルプメニューの下)を使用してEGitを任意のディストリビューションにインストールすることもできます) 。

  • プロジェクトをEclipseにインポートしたら、プロジェクトが「共有」されていることを確認します。

プロジェクトを右クリック->チーム->プロジェクトを共有..-> Git

次の手順を実行します。

  • チーム同期パースペクティブに切り替えます。
  • 同期ビューの小さな同期ボタンをクリックします。
  • Gitを選択
  • refs/remotes/Origin/masterなど、同期する適切なブランチを選択します
  • 「ローカルのコミットされていない変更を比較に含める」ボックスを必ず確認してください
  • 完了をクリックします

ここで、いくつかのファイルを変更し、それらが同期ビューに表示されるのを確認します。変更したファイルをダブルクリックして、差分を確認します(下のスクリーンショットのように)。

Screenshot of Eclipse Juno - EGit Synchronize View

これはEclipse Oxygenの時点で書いていますが、他のバージョンにも適用されるはずです。

  1. チーム同期ビューのオプション1:プロジェクトを右クリック>比較と比較>コミット。プッシュしていない場合でも、ここで最新のコミットを選択できます。リポジトリへ。
  2. 差分ビューのオプション2:コミットせずに「差分」バージョンを表示したい場合は、プロジェクトを右クリックして>チーム> stashes> Stash Changes>未追跡ファイルを含めるをチェックします。 これにより、すべての変更がスタッシュに保存されます。次に、右クリックプロジェクト>チーム> stashes>保存したstashを選択します。右上の緑色の矢印をクリックして、すべてを再適用します。コードに隠しておいた変更。同じスタッシュウィンドウで、右下に[Diff]タブが表示されます。差分タブをクリックすると、変更が赤/緑の強調表示された差分スタイルで表示されます。スタッシングなしでdiffビューを生成する方法があればいいのですが、これが唯一の回避策です。
1
Kt Mack