この答えは、gitにチェックインされている2つのファイル間の視覚的な差分を見るのに最適です。 視覚的差分プログラムで 'git diff'の出力を表示するにはどうすればよいですか?
しかし、2つのブランチ間の視覚的な違いを確認したいと思います。これまでのところ、私の最善の策は次のようです。
git diff --name-status master dev
これはあまり有益ではなく、あまり視覚的でもありません。
もっと良いものはありますか?
git diff branch1..branch2
これは各ブランチのヒントを比較します。
本当にGUIソフトウェアが欲しいなら、Mac OS XとWindowsをサポートする SourceTree のようなものを試すことができます。
2つのブランチ間のすべての違いを視覚的に比較するには、マージをコミットせずに2つのブランチをマージし、次にgit gui
またはgit Extensionsを使用して違いの概要を確認します。
コミットせずにマージするためのGitコマンドライン
git checkout branchA git merge --no-commit --no-ff branchB
それが終わったら、マージを元に戻すことができます。
git merge --abort
(コメントは@ jcugatさんへのh/t)
Intellij Idea IDEを使用している場合は、ブランチでcompareオプションを使用することができます。
これはgitkでも簡単にできます。
> gitk branch1 branch2
最初にbranch1の先端をクリックしてください。今度はbranch2の先端を右クリックして、「これを選択」 - >「選択」と選択します。
Windows上でTortoiseGitを使用している人のために、このややあいまいな機能を通して視覚的な比較をやや得ることができます。
shift
を押しながら右クリックctrl
を使用してください。OSXまたはWindows 7以降を使用している場合は、 Atlassian SourceTree がこれに非常に適しています。これは無料。
あなたは段階的な差分設定で段階的な変更を見ることができます、そしてあなたは簡単にリモートと他の2つのブランチとローカルを比較します。複数のファイルを選択した場合、差分は以下のように表示されます。
機能ブランチをチェックアウトし、 'master'との差分を見たい場合は、 'master'ブランチを右クリックして[現在との差分]を選択します。
残念ながら、* nixディストリビューションで利用可能になるかのようには思えません いつでも 。
"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
で述べていて現在のブランチにデフォルト設定されているようにそれはただです。マスターと比較:
$ git difftool -d master..
...そしてはい - たくさんのバリエーションがあります--- https://www.kernel.org/pub/software/scm/git/docs/git-reset.html
Githubを使用している場合は、これにWebサイトを使用できます。
github.com/url/to/your/repo/compare/SHA_of_tip_of_one_branch...SHA_of_tip_of_another_branch
それはあなたに2つの比較を見せるでしょう。
GitExtensions では、リビジョングリッドで両方のブランチを選択できます。 Ctrl 押されました。それからあなたはそれらの枝の間で異なるファイルを見ることができます。ファイルを選択すると、それに対する差分が表示されます。
から取られた ここ
更新
Mac:私は今SourceTreeを使っています。徹底的にお勧めします。私はあなたがステージ/ステージを切ることができる方法を特に好きです。
Linux:私は成功しました:
meld
例えば。 Ubuntuにsmartgit
をインストールする方法:
.deb
を https://www.syntevo.com/smartgit/download/ からダウンロードしてください。これは仕事をします:
meldのようなGUI差分ツールを使った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
これを行うには、Perforceの無料のP4Mergeを使用できます。
http://www.perforce.com/product/components/perforce-visual-merge-and-diff-tools
Gitとの統合に関する詳細は こちら そして こちら をご覧ください。
しかし、上記のリンクからの簡単な要約は以下のとおりです。
$ git mergetool
と$ git difftool
を実行できます。$ git diff
はまだデフォルトのインライン差分ビューアを使うだけです:)(gitバージョン1.8.2でテストされています)[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\""
Eclipseを使用している場合は、ワークスペース上の現在のブランチを別のタグ/ブランチと視覚的に比較できます。
コアgit機能を使ってできることはたくさんあります。視覚的な差分に含めるものを指定するのが良いかもしれません。ほとんどの回答はコミットの行ごとの差分に焦点を当てています。ここでは、特定のコミットで影響を受けるファイルの名前に焦点を当てています。
対処されていないように見えるビジュアルの1つは、ブランチに含まれているコミットを(共通か一意かを問わず)確認する方法です。
このビジュアルのために、私はgit show-branch
の大ファンです。それはブランチごとのよく体系化されたコミット表を共通の先祖に振り分けます。 - 分岐のある複数のブランチでレポジトリを試すには、git show-branch
と入力して出力を確認してください - 例を挙げた記事については、 Gitブランチ間のコミットの比較 を参照してください。 )
これは、Visual Studio(VS 2017でテスト済み)で、単一ファイルとは対照的に、コミット全体の視覚的な違いを確認する方法です。残念ながら、これは1つのブランチ内のコミットに対してのみ機能します。「チームエクスプローラ」で、「ブランチ」ビューを選択し、レポジトリを右クリックして、次の図のように「履歴表示」を選択します。
現在のブランチの履歴がメインエリアに表示されます。 Ctrlキーを押しながら左キーを押してコミットをいくつか選択し、右クリックしてポップアップメニューから[コミットの比較...]を選択します。
Microsoftの世界でブランチを比較する方法の詳細については、次のstackoverflowに関する質問を参照してください。 Visual Studioを使用したgitブランチ間の違い 。