211

この回答は、gitにチェックインされた2つのファイル間の視覚的な差分を確認するのに最適 です。視覚的な差分プログラムで「gitdiff」出力を表示するにはどうすればよいですか?

ただし、2つのブランチ間の視覚的な違いを確認したいと思います。これまでのところ、私の最善の策は次のようです。

git diff --name-status master dev

これはあまり有益ではなく、あまり視覚的でもありません。

そこにもっと良いものはありますか?

4

16 に答える 16

232

範囲で使用git diffします。

git diff branch1..branch2

これにより、各ブランチのヒントが比較されます。

GUIソフトウェアが本当に必要な場合は、MacOSXとWindowsをサポートするSourceTreeのようなものを試すことができます。

于 2012-10-16T10:50:30.163 に答える
110

2つのブランチ間のすべての違いを視覚的に確認するには、2つのブランチをマージします(マージをコミットせずに)。次に、git guiまたはgit Extensionsを使用して、違いの概要を取得します。

コミットせずにマージするためのGitコマンドライン:

git checkout branchA
git merge --no-commit --no-ff branchB

その後、完了したら、マージを元に戻すことができます

git merge --abort

(コメントは@jcugatにh / t)

于 2013-05-28T11:29:06.243 に答える
61

Intellij Idea IDEを使用している場合は、ブランチで比較オプションを使用できます。

ここに画像の説明を入力してください

于 2013-12-05T08:24:05.227 に答える
56

gitkを使用してこれを簡単に行うこともできます。

> gitk branch1 branch2

まず、branch1の先端をクリックします。次に、branch2の先端を右クリックして、[Diffthis]->[selected]を選択します。

于 2014-04-10T19:58:47.553 に答える
34

TortoiseGitを使用しているWindowsを使用している場合は、このかなりあいまいな機能を使用して、視覚的な比較を行うことができます。

  1. 比較するフォルダに移動します
  2. 押したままshift右クリックします
  3. TortoiseGit->参照参照に移動します
  4. ctrl比較する2つのブランチを選択するために使用します
  5. 選択範囲を右クリックして、[選択した参照の比較]をクリックします

ソース:http ://wikgren.fi/compare-diff-branches-in-tortoise-git-or-how-to-preview-changes-before-doing-a-merge/

于 2015-01-26T17:39:47.750 に答える
25

OSXまたはWindows7以降を使用している場合、AtlassianSourceTreeはこれに非常に適しています。これは無料。

並列のdiffセットアップで段階的な変更を確認でき、ローカルとリモートおよび他の2つのブランチを簡単に比較できます。複数のファイルを選択すると、差分は次のように表示されます。

ここに画像の説明を入力してください

機能ブランチをチェックアウトし、「マスター」との差分を確認したい場合は、「マスター」ブランチを右クリックして「現在の差分」を選択します。

残念ながら、*nixディストリビューションですぐに利用できるようにはならないようです。

于 2014-09-27T01:01:54.113 に答える
17

「difftool」を試してください(diffツールがセットアップされていることを前提としています)-https://www.kernel.org/pub/software/scm/git/docs/git-difftool.htmlを参照してください

名前のステータスは要約に適していると思いますが、 difftoolは変更を繰り返します(-dオプションでディレクトリビューが表示されます)。

$ git difftool their-branch my-branch

Viewing: 'file1.txt'
Launch 'bc3' [Y/n]:
...

または、@ rsilva4で言及さ-dれ、現在のブランチにデフォルト設定されているように、それはただのことです-たとえば、masterと比較してください:

$  git difftool -d master..

...そしてはい-多くのバリエーションがあります-https://www.kernel.org/pub/software/scm/git/docs/git-reset.html

于 2014-03-14T02:30:26.357 に答える
9

GitExtensionsでは、をCtrl押した状態でリビジョングリッドの両方のブランチを選択できます。次に、それらのブランチ間で異なるファイルを確認できます。ファイルを選択すると、そのファイルの差分が表示されます。

ここから撮影

または、任意のリビジョンを右クリックして、[比較]>[ブランチの比較...]を選択することもできます。

右クリックメニュー

次に、比較するブランチを選択します。

ブランチを選択

そして、2つのブランチ間で異なるファイルを一覧表示する差分ウィンドウが表示され、ファイルごとに差分ビューが表示されます。

差分ビュー

于 2014-09-24T17:38:03.730 に答える
8

githubを使用している場合は、次のWebサイトを使用できます。

github.com/url/to/your/repo/compare/SHA_of_tip_of_one_branch...SHA_of_tip_of_another_branch

それはあなたに2つの比較を示します。

于 2014-01-14T03:10:25.293 に答える
7

アップデート

Mac:現在SourceTreeを使用しています。徹底的にお勧めします。私は特に、ハンクをステージング/アンステージングできる方法が好きです。

Linux:私は成功しました:

  • smartgit
  • GitKraken
  • meld

たとえばsmartgit、Ubuntuにインストールする場合:


これは仕事をします:

meldのようなGUIdiffツールを使用したgit-diffall。ここでポイント5を参照してください。

http://rubyglazed.com/post/15772234418/git-ify-your-command-line

ここにgitとmeldに関する素晴らしい投稿があります:http://nathanhoad.net/how-to-meld-for-git-diffs-in-ubuntu-hardy

于 2012-11-08T16:25:23.893 に答える
4

Eclipseを使用している場合は、ワークスペース上の現在のブランチを別のタグ/ブランチと視覚的に比較できます。

Eclipseワークスペースの比較

于 2014-08-22T06:56:09.803 に答える
4

Perforceの無料のP4Mergeを使用して、これを行うこともできます。

http://www.perforce.com/product/components/perforce-visual-merge-and-diff-tools

ここに画像の説明を入力してください

Gitとの統合の詳細については、こちらこちらをご覧ください。

しかし、上記のリンクからの簡単な要約は次のとおりです。

  • 〜/ .gitconfigに次のビットを入力すると、p4mergeを使用できるよう$ git mergetoolになります。$ git difftool
  • $ git diff引き続きデフォルトのインライン差分ビューアを使用することに注意してください:)(gitバージョン1.8.2でテスト済み)

.gitconfigの変更

[merge]
  keepBackup = false
    tool = p4merge
[mergetool "p4merge"]
    cmd = /Applications/p4merge.app/Contents/Resources/launchp4merge "\"$PWD/$BASE\"" "\"$PWD/$REMOTE\"" "\"$PWD/$LOCAL\"" "\"$PWD/$MERGED\""
    keepTemporaries = false
    trustExitCode = false
    keepBackup = false
[diff]
    tool = p4merge
[difftool "p4merge"]
    cmd = /Applications/p4merge.app/Contents/Resources/launchp4merge "\"$REMOTE\"" "\"$LOCAL\""
于 2015-09-17T14:59:51.477 に答える
2

優れたWebStormエディターを使用している場合は、任意のブランチと比較できます。

Webstormgit比較

于 2017-03-07T15:10:40.513 に答える
2

見てgit show-branch

コアgit機能でできることはたくさんあります。ビジュアル差分に含めるものを指定するとよい場合があります。ほとんどの回答は、コミットの行ごとの差分に焦点を当てています。ここで、例では、特定のコミットで影響を受けるファイルの名前に焦点を当てています。

対処されていないように思われるビジュアルの1つは、ブランチに含まれるコミットを確認する方法です(共通または一意)。

このビジュアルでは、私はgit show-branch;の大ファンです。ブランチごとによく整理されたコミットのテーブルを作成して、共通の祖先に戻します。-分岐のある複数のブランチを持つリポジトリで試してみるにはgit show-branch、出力を入力して確認するだけです-例を含む記事については、Gitブランチ間のコミットの比較を参照してください

于 2018-04-19T13:28:48.070 に答える
0

Visual Studio(VS 2017でテスト済み)で、単一のファイルではなく、コミット全体の視覚的な差分を確認する方法を次に示します。残念ながら、これは1つのブランチ内のコミットに対してのみ機能します。「チームエクスプローラー」で「ブランチ」ビューを選択し、リポジトリを右クリックして、次の図のように「履歴の表示」を選択します。

ここに画像の説明を入力してください

次に、現在のブランチの履歴がメインエリアに表示されます。(現在のブランチで以前のコミットとして終了したブランチはラベルでマークされています。)次に、Ctrlキーを押しながら左にいくつかのコミットを選択し、右クリックしてポップアップメニューから[コミットの比較...]を選択します。

Microsoftの世界でブランチを比較する方法の詳細については、このスタックオーバーフローの質問:VisualStudioを使用したgitブランチ間の違いを参照してください。

于 2018-05-14T08:50:53.283 に答える
0

また、vscodeを使用して、拡張コードLenseを使用してブランチを比較することもできます。これは、このSOですでに回答されています:VisualStudioコードでさまざまなブランチを比較する方法

于 2019-12-16T14:40:48.990 に答える