web-dev-qa-db-ja.com

gitでブランチ間のコミットの違いをどうやって見ることができますか?

私はbranch-Xを使っていて、その上にさらに2つのコミットを追加しました。私がコミットしているMASTERとブランチの違いをすべて見てみたいと思います。私はちょうどすることができました

git checkout master
git log

そして、

git checkout branch-X
git log

これらを視覚的に比較してみましょうが、私はもっと簡単でエラーの少ない方法を望んでいます。

268
Avery

あなたはあなたのブランチがこれによってどのように異なるかの本当に素晴らしい、視覚的な出力を得ることができます

git log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr)%Creset' --abbrev-commit --date=relative master..branch-X
270
tom

あなたは簡単にそれを行うことができます

git log master..branch-X

それはあなたがbranch-Xが持っているがmasterは持っていないことをコミットすることを示します。

私はそれが選択と文脈の問題だと思います。私は使うのが好きです

git log Origin/master..Origin/develop --oneline

それはマスターブランチにない開発のコミットを表示します。

実際にどのファイルが変更されたのかを知りたい場合

git diff --stat Origin/master..Origin/develop

引数を指定しないと、完全な差分が表示されます。視覚的な差分を見たい場合は、Linuxではmeld、WindowsではWinMergeをインストールしてください。それらがデフォルトのdifftoolsであることを確認してください。

git difftool -y Origin/master..Origin/develop

現在のブランチと比較したい場合。 useのようにブランチ名の代わりにHEADを使うほうが便利です:

git fetch
git log Origin/master..HEAD --oneline

マージされようとしているコミットがすべて表示されます。

54
zainengineer

あなたがLinuxを使っているなら、gitgはとても速くそしてグラフィカルにそれをするための方法です。

あなたがコマンドラインを主張するならば、あなたは使うことができます:

git log --oneline --decorate

デフォルトでgit logをよりきれいにするために、私は通常これらのグローバル設定を設定します:

git config --global log.decorate true
git config --global log.abbrevCommit true
14
mvp

「コミット」の違いを確認するには、次のようにします。対称にするには、引数を反転してコマンドを繰り返します。

git cherry -v master [your branch, or HEAD as default]
12
mmaruska

gitkを使いたい場合は

gitk master..branch-X

それは素敵な古い学校のGUiを持っています

8
snowcamel

完全な答えではありませんが、Githubを使用している人のためにはうまく機能します

enter image description here

あなたのレポに行きます:Insights -> Network

4
AIon

私はいくつかの答えを使用し、私のケースに合ったものを見つけました(すべてのタスクがリリースブランチにあることを確認してください)。

他の方法も同様に機能しますが、値を追加しないマージコミットなど、必要のない行を追加する可能性があることがわかりました。

git fetch
git log Origin/master..Origin/release-1.1 --oneline --no-merges

または、現在の電流をマスターと比較できます

git fetch
git log Origin/master..HEAD --oneline --no-merges

git fetchは、更新された情報を使用していることを確認するためにあります。

この方法では、各コミットが1行になり、それをコピーしてテキストエディターに貼り付け、マージされるコミットとタスクの比較を開始できます。

0

コミットメッセージに基づいて比較する場合は、次の操作を実行できます。

git fetch
git log --oneline Origin/master | cut -d' ' -f2- > master_log
git log --oneline Origin/branch-X | cut -d' ' -f2- > branchx_log
diff <(sort master_log) <(sort branchx_log)
0
Maroun
#! /bin/bash
if ((2==$#)); then
  a=$1
  b=$2
  alog=$(echo $a | tr '/' '-').log
  blog=$(echo $b | tr '/' '-').log
  git log --oneline $a > $alog
  git log --oneline $b > $blog
  diff $alog $blog
fi

これは、あなたが視覚的な差分ツールを持っていれば、aとbの対数を並べて視覚的に比較できるためです。最後のdiffコマンドを視覚的な差分ツールを起動するコマンドに置き換えます。

0
Kim Briggs