2013-05-15 7 views
10

同じファイルの差分を得るには、magitを使用しますか?magit:同じブランチ上の2つの異なるコミット間で同じファイルをどのようにdiffするのですか?

gitを直接作成することができます。this。しかし、私はmagitの中からそれをする方法を知らない。 magit-statusからdD全体のリポジトリの差分を返します。リポジトリが巨大なであり、magit(そしてemacs)が応答しなくなるため、これは私にとって非常に問題です。 magitにリポジトリからの1つのファイルだけに検索を制限するよう依頼する方法はありますか?

私も試しましたが、magit-statusのバッファには: diff $start_commit..$end_commit -- path/to/fileのバッファがあります。特にC-U C-X Vに= - どこへ行く

+0

[MAGITの2つの異なるブランチからのfoo.barの比較](http://stackoverflow.com/questions/16358936/compare-foo-bar-from-two-different-branches-in-magit)( – phils

答えて

5

一つの方法は、this related answerにより示唆されるようvcを使用することです...これは動作しますが、出力は任意のハイライトでも任意の折りたたみオプションのない単純なバッファです。しかし、これはチャンクを折る(un)可能性な​​しにバッファを返します。

5

誰もが、magitでこれを行うことができるようになりました(私はmagit-ログからこれを行うが、あなたはおそらく、あまりにも、他の場所からそれを行うことができます)今、この全体につまずく場合:

  1. タイプdをします差分の範囲を行うには、表示したいファイル(プロジェクトのルートディレクトリへの相対パスを入力してください)
  2. タイプrを指定するmagit-diffを-ポップアップ
  3. タイプ=fを開きます。コミットの範囲が尋ねられます(例:4abcde2..HEAD)。あるいは、magit-logのコミットの範囲を強調表示すると、プロンプトなしで自動的に範囲が設定されます。

このようにして、ハイライトとコードの折り畳みが完了したmagit-diffバッファーになります。

+0

あるいは 'magit-file-mode'を有効にして(おそらく' global-magit-file-mode'を使って) 'Cc Mg 'を使うことができますD r'である。 'mag-file-popup'を' C-c M-g'よりも入力が簡単なものにバインドすることができます。 – phils

+0

'M-x magit-diff-popup'もあなたに届きます。 –

関連する問題