[解決済み】git ahead/behind information between master and branch?
質問
ローカルリポジトリにテスト用のブランチを作成しました (
test-branch
にプッシュしました。
Github
.
もし、私が自分の
Github
アカウントで、この
test-branch
をクリックすると、その情報が表示されます。
This branch is 1 commit ahead and 2 commits behind master
私の質問です。
-
この情報をローカルに表示するにはどうしたらよいでしょうか(たとえば、ターミナルでこの情報を表示するコマンド。
Github
を見ることができますか?) -
ブランチ間の差分を見ることができるのは知っています。
git diff master..test-branch
または
Meld
(私はこれが好きです)。git difftool master..test-branch
を見る方法はないかと思ったのですが。 先 と 後ろ は別々にコミットします。I.E.: 次のことを示す方法はありますか? 1コミット先 を単体で、そしてそれらの 2コミット後ろ を単独で?
解決方法は?
パート1
質問1に対する答えとして、2つのブランチを比較して、それぞれのブランチが他より何コミット進んでいるかを表示するトリックを見つけました(質問1に対するより一般的な答えです)。
について
ローカル
のブランチになります。
git rev-list --left-right --count master...test-branch
について
リモート
のブランチを作成します。
git rev-list --left-right --count origin/master...origin/test-branch
すると、次のような出力が得られます。
2 1
この出力は、次のことを意味します。
master
,
test-branch
は1コミット先で2コミット後です。
また、ローカルブランチとリモートブランチを比較することもできます。
origin/master...master
を使えば、ローカルブランチのコミット数を知ることができます(ここでは
master
がリモートの対応するものに対して先行/後行していることを示します。
パート2
ご質問の後半部分への回答ですが、具体的に何を実現したいのかによって、解決策が異なります。
コミットを見るには
を持つためには
git rev-list
は、どちらか一方のコミットの正確なリストを返します。
--count
のような引数に変更します。
--pretty=oneline
で、完全なコマンドを実行するようにします。
git rev-list --left-right --pretty=oneline master...test-branch
すると、次のような出力が得られます。
<bba27b56ad7072e281d529d4845e4edf877eb7d7 unique commit 2 on master
<dad0b69ec50ea57b076bfecabf2cc7c8a652bb6f unique commit 1 on master
>4bfad52fbcf0e60d78d06661d5c06b59c98ac8fd unique commit 1 on test-branch
ここでは、すべてのコミット sha の前に
<
または
>
で、どちらの枝にあるのかを示します(左または右、ここでは
master
または
test-branch
をそれぞれ使用します)。
コードを表示する
どちらかのブランチにあるすべての新しいコミットだけの diff を表示したい場合は、二段階の手順で行います。
- 直近の共通祖先を定義する
$ git merge-base master test-branch
c22faff7468d6d5caef217ac6b82f3ed95e9d902
- どちらかのブランチを上で取得したコミットshaにdiffします(通常は短いフォーマットで大丈夫です)
master にある全コミットの diff を表示する場合のみ
git diff c22faff7..master
test-branch にあるすべてのコミットの diff を表示する場合
git diff c22faff7..test-branch
関連
-
[解決済み] Gitブランチをローカルやリモートで削除するには?
-
[解決済み] git pull」と「git fetch」の違いは何ですか?
-
[解決済み] リモートのGitブランチをチェックアウトするには?
-
[解決済み] 新しいローカルブランチをリモートの Git リポジトリにプッシュし、それを追跡するにはどうすればよいのでしょうか?
-
[解決済み] まだプッシュされていない Git マージを元に戻す
-
[解決済み] Git でブランチからコミットを削除する
-
[解決済み] detached HEADとmaster/originの連携はどうすればいいですか?
-
[解決済み] Git で最新のコミットを新しいブランチに移動する
-
[解決済み】既存のGitブランチをリモートブランチに追従させる?
-
[解決済み】ローカルのGitブランチの名前を変更するには?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] git pull リモートブランチがリモートの参照先を見つけることができない
-
[解決済み】マージ後のコミットでGitエラー - fatal: マージ中に部分コミットができない
-
git commits with an error: 更新が拒否されました。現在のブランチの先端が、このブランチより後ろにあるためです。
-
git push reports an error ! [リモート拒否] master -> master (受信前のフックが拒否されました)
-
[解決済み] ERROR: リモートレポ 'origin' のクローン作成に失敗しました。
-
[解決済み] Git pull - マージする前に移動または削除してください。
-
[解決済み] git rebase: "error: cannot stat 'file': パーミッションが拒否されました"
-
[解決済み] エラーです。リベースを使用してプルできません。あなたはステージングされていない変更を持っています
-
[解決済み] Git のアンプッシュされたコミットを表示する
-
[解決済み] Git で現在のブランチ名を取得するには?