この回答は、gitにチェックインされた2つのファイル間の視覚的な差分を確認するのに最適 です。視覚的な差分プログラムで「git diff」の出力を表示するにはどうすればよいですか?
ただし、2つのブランチ間の視覚的な違いを見たいのですが。これまでのところ、私の最善の策は次のようです:
git diff --name-status master dev
これはあまり有益ではなく、あまり視覚的ではありません。
そこにもっと良いものはありますか?
この回答は、gitにチェックインされた2つのファイル間の視覚的な差分を確認するのに最適 です。視覚的な差分プログラムで「git diff」の出力を表示するにはどうすればよいですか?
ただし、2つのブランチ間の視覚的な違いを見たいのですが。これまでのところ、私の最善の策は次のようです:
git diff --name-status master dev
これはあまり有益ではなく、あまり視覚的ではありません。
そこにもっと良いものはありますか?
回答:
git diff branch1..branch2
これは、各ブランチのヒントを比較します。
GUIソフトウェアが本当に必要な場合は、Mac OS XとWindowsをサポートするSourceTreeのようなものを試すことができます。
Meld
してからデフォルトdifftool
で設定しgit config --global diff.tool meld
、最後にプレーンdiff
でではなく起動することをお勧めしますgit difftool branch1..branch2
。その結果、見栄えが格段に良くなります。
git difftool -t meld branch1..branch2
2つのブランチ間のすべての違いの視覚的な違いを確認するには、マージをコミットせずに2つのブランチをマージしてから、git gui
またはgit Extensionsを使用して違いの概要を取得します。
コミットせずにマージするためのGitコマンドライン:
git checkout branchA git merge --no-commit --no-ff branchB
その後、完了したら、マージを元に戻すことができます
git merge --abort
(コメント用の@jcugatへのh / t)
git gui
は、競合はステージングされていないこと、非競合はステージングされていることを示しているので、あなたも区別がつきます。一流の回答よりも多くの助けになります:D
これはgitkでも簡単に行えます。
> gitk branch1 branch2
まず、branch1の先端をクリックします。次に、branch2の先端を右クリックし、[これを比較->選択]を選択します。
gitk branch1..branch2
すると、2つのリビジョン間のコミットのみが表示されます。
WindowsでTortoiseGitを使用している場合は、このあいまいな機能により、多少視覚的に比較できます。
shift
右クリックctrl
比較する2つのブランチを選択するために使用します出典:http : //wikgren.fi/compare-diff-branches-in-tortoise-git-or-how-to-preview-changes-before-doing-a-merge/
OSXまたはWindows 7以降を使用している場合、Atlassian SourceTreeはこれに対して非常にうまく機能します。これは無料。
サイドバイサイドの差分設定で段階的な変更を確認でき、ローカルとリモートおよび他の2つのブランチを簡単に比較できます。複数のファイルが選択されている場合、差分は次のように表示されます。
機能ブランチをチェックアウトしていて、「マスター」に対する差分を表示したい場合、「マスター」ブランチを右クリックして、「現在との差分」を選択します。
残念ながら、すぐに* 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
git difftool -d their-abc my-abc
-d --dir-diff: Copy the modified files to a temporary location and perform a directory diff on them. This mode never prompts before launching the diff tool.
githubを使用している場合は、次のWebサイトを使用できます。
github.com/url/to/your/repo/compare/SHA_of_tip_of_one_branch...SHA_of_tip_of_another_branch
その2つの比較を示します。
github.com/url/to/your/repo/compare/
、ブランチを選択することもできます
でGitExtensionsであなたは改訂グリッドの両方の分岐を選択することができますCtrl押しました。次に、それらのブランチ間で異なるファイルを確認できます。ファイルを選択すると、その差分が表示されます。
ここから撮影
更新
Mac:SourceTreeを使っています。徹底的にお勧めします。特に、ハンクをステージング/ステージング解除する方法が好きです。
Linux:私は以下で成功しました:
meld
例えばsmartgit
Ubuntu にインストールする場合:
.deb
からダウンロードしますこれは仕事をします:
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
Eclipseを使用している場合は、ワークスペース上の現在のブランチを別のタグ/ブランチと視覚的に比較できます。
PERFORCEの無料のP4Mergeを使用してこれを行うこともできます。
http://www.perforce.com/product/components/perforce-visual-merge-and-diff-tools
Gitとの統合の詳細については、こちらとこちらをご覧ください。
しかし、上記のリンクからの簡単な要約は次のとおりです。
$ git mergetool
し、$ git difftool
P4MERGEを使用します$ git diff
、デフォルトのインライン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\""
git show-branch
gitのコア機能でできることはたくさんあります。視覚的な差分に何を含めたいかを指定するとよいでしょう。ほとんどの回答は、コミットの行ごとの相違に焦点を当てています。この例では、特定のコミットで影響を受けるファイルの名前に焦点を当てています。
対処されていないように見えるビジュアルの1つは、ブランチに含まれるコミットの確認方法です(共通または一意にかかわらず)。
このビジュアルでは、私はの大ファンですgit show-branch
。ブランチごとによく整理されたコミットのテーブルを作成して、共通の祖先に戻します。-分岐のある複数のブランチを持つリポジトリでそれを試すにはgit show-branch
、入力して出力を確認するだけです-例を含む記述については、Gitブランチ間のコミットの比較を参照してください
これは、Visual Studio(VS 2017でテスト済み)で、単一のファイルではなく、コミット全体の視覚的な違いを確認する方法です。残念ながら、これは1つのブランチ内のコミットに対してのみ機能します。「チームエクスプローラー」で「ブランチ」ビューを選択し、リポジトリを右クリックして、「履歴の表示」を選択します。
次に、現在のブランチの履歴がメイン領域に表示されます。(現在のブランチで以前のコミットとして終了したブランチにはラベルが付けられています。)次に、Ctrl-Leftでいくつかのコミットを選択し、右クリックしてポップアップメニューから[コミットの比較...]を選択します。
Microsoftの世界でのブランチの比較の詳細については、このstackoverflowの質問:Visual Studioを使用したgitブランチの違いを参照してください。
vscodeを使用して、拡張CodeLenseを使用してブランチを比較することもできます。これは既にこのSOで回答されています:Visual studioコードで異なるブランチを比較する方法