この回答は、gitにチェックインされた2つのファイル間の視覚的な差分を確認するのに最適 です。視覚的な差分プログラムで「gitdiff」出力を表示するにはどうすればよいですか?
ただし、2つのブランチ間の視覚的な違いを確認したいと思います。これまでのところ、私の最善の策は次のようです。
git diff --name-status master dev
これはあまり有益ではなく、あまり視覚的でもありません。
そこにもっと良いものはありますか?
この回答は、gitにチェックインされた2つのファイル間の視覚的な差分を確認するのに最適 です。視覚的な差分プログラムで「gitdiff」出力を表示するにはどうすればよいですか?
ただし、2つのブランチ間の視覚的な違いを確認したいと思います。これまでのところ、私の最善の策は次のようです。
git diff --name-status master dev
これはあまり有益ではなく、あまり視覚的でもありません。
そこにもっと良いものはありますか?
git diff branch1..branch2
これにより、各ブランチのヒントが比較されます。
GUIソフトウェアが本当に必要な場合は、MacOSXと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を使用している場合は、ブランチで比較オプションを使用できます。
gitkを使用してこれを簡単に行うこともできます。
> gitk branch1 branch2
まず、branch1の先端をクリックします。次に、branch2の先端を右クリックして、[Diffthis]->[selected]を選択します。
TortoiseGitを使用しているWindowsを使用している場合は、このかなりあいまいな機能を使用して、視覚的な比較を行うことができます。
shift
右クリックしますctrl
比較する2つのブランチを選択するために使用しますOSXまたはWindows7以降を使用している場合、AtlassianSourceTreeはこれに非常に適しています。これは無料。
並列のdiffセットアップで段階的な変更を確認でき、ローカルとリモートおよび他の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
れ、現在のブランチにデフォルト設定されているように、それはただのことです-たとえば、masterと比較してください:
$ git difftool -d master..
...そしてはい-多くのバリエーションがあります-https://www.kernel.org/pub/software/scm/git/docs/git-reset.html
GitExtensionsでは、をCtrl押した状態でリビジョングリッドの両方のブランチを選択できます。次に、それらのブランチ間で異なるファイルを確認できます。ファイルを選択すると、そのファイルの差分が表示されます。
ここから撮影
または、任意のリビジョンを右クリックして、[比較]>[ブランチの比較...]を選択することもできます。
次に、比較するブランチを選択します。
そして、2つのブランチ間で異なるファイルを一覧表示する差分ウィンドウが表示され、ファイルごとに差分ビューが表示されます。
githubを使用している場合は、次のWebサイトを使用できます。
github.com/url/to/your/repo/compare/SHA_of_tip_of_one_branch...SHA_of_tip_of_another_branch
それはあなたに2つの比較を示します。
アップデート
Mac:現在SourceTreeを使用しています。徹底的にお勧めします。私は特に、ハンクをステージング/アンステージングできる方法が好きです。
Linux:私は成功しました:
meld
たとえばsmartgit
、Ubuntuにインストールする場合:
.deb
からダウンロードしますこれは仕事をします:
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
Eclipseを使用している場合は、ワークスペース上の現在のブランチを別のタグ/ブランチと視覚的に比較できます。
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\""
git show-branch
コアgit機能でできることはたくさんあります。ビジュアル差分に含めるものを指定するとよい場合があります。ほとんどの回答は、コミットの行ごとの差分に焦点を当てています。ここで、例では、特定のコミットで影響を受けるファイルの名前に焦点を当てています。
対処されていないように思われるビジュアルの1つは、ブランチに含まれるコミットを確認する方法です(共通または一意)。
このビジュアルでは、私はgit show-branch
;の大ファンです。ブランチごとによく整理されたコミットのテーブルを作成して、共通の祖先に戻します。-分岐のある複数のブランチを持つリポジトリで試してみるにはgit show-branch
、出力を入力して確認するだけです-例を含む記事については、Gitブランチ間のコミットの比較を参照してください
Visual Studio(VS 2017でテスト済み)で、単一のファイルではなく、コミット全体の視覚的な差分を確認する方法を次に示します。残念ながら、これは1つのブランチ内のコミットに対してのみ機能します。「チームエクスプローラー」で「ブランチ」ビューを選択し、リポジトリを右クリックして、次の図のように「履歴の表示」を選択します。
次に、現在のブランチの履歴がメインエリアに表示されます。(現在のブランチで以前のコミットとして終了したブランチはラベルでマークされています。)次に、Ctrlキーを押しながら左にいくつかのコミットを選択し、右クリックしてポップアップメニューから[コミットの比較...]を選択します。
Microsoftの世界でブランチを比較する方法の詳細については、このスタックオーバーフローの質問:VisualStudioを使用したgitブランチ間の違いを参照してください。
また、vscodeを使用して、拡張コードLenseを使用してブランチを比較することもできます。これは、このSOですでに回答されています:VisualStudioコードでさまざまなブランチを比較する方法