[解決済み】Gitでブランチの変更点を取得する方法
質問
現在のブランチからブランチされた時点以降のブランチのコミットログを取得するのに最適な方法は何でしょうか?今までの私の解決策は
git log $(git merge-base HEAD branch)..branch
のドキュメントは
git-diff(ギットディフ
とは
git diff A...B
と同等です。
git diff $(git-merge-base A B) B
. 一方
git-rev-parse
とは
r1...r2
は次のように定義されています。
r1 r2 --not $(git merge-base --all r1 r2)
.
これらはなぜ違うのでしょうか?注意してほしいのは
git diff HEAD...branch
は欲しい差分を与えてくれますが、対応する git log コマンドは欲しい差分以上のものを与えてくれます。
絵で言うと、こうだとします。
x---y----z---ブランチ / ---a---b---c---d---e---HEAD
コミット x, y, z を含むログを取得したいのですが。
-
git diff HEAD...branch
はこれらのコミットを与えます。 -
が、しかし。
git log HEAD...branch
は、x, y, z, c, d, e を与える。
解き方は?
リビジョンリストのコンテキストで
A...B
はどのように
git-rev-parse
はそれを定義しています。git-log はリビジョンリストを受け取ります。
git-diff
はリビジョンのリストを受け取りません。1つか2つのリビジョンを受け取り、そのリビジョンに対応した
A...B
の構文で定義されているような意味になります。
git-diff
のマニュアルページを参照してください。もし
git-diff
が明示的に定義されていない場合は
A...B
であれば、その構文は無効である。なお
git-rev-parse
のマニュアルページでは
A...B
を参照してください。このセクションの内容は、リビジョン範囲が有効な場合(つまり、リビジョンリストが必要な場合)にのみ有効です。
x, y, z だけを含むログを取得するには、次のようにします。
git log HEAD..branch
(3つの点ではなく2つの点)。これは
git log branch --not HEAD
ブランチ上のコミットで、HEAD にないものをすべて意味します。
関連
-
[解決済み] Git で直近のローカルコミットを取り消すには?
-
[解決済み] Gitブランチをローカルやリモートで削除するには?
-
[解決済み] git pull」と「git fetch」の違いは何ですか?
-
[解決済み] コミット前に 'git add' を取り消すにはどうすればよいですか?
-
[解決済み] リモートのGitブランチをチェックアウトするには?
-
[解決済み] 現在のGit作業ツリーからローカル(未追跡)ファイルを削除する方法
-
[解決済み] Git で、ステージされていない変更を破棄するにはどうしたらいいですか?
-
[解決済み] Git で現在のブランチ名を取得するには?
-
[解決済み】"git pull" でローカルファイルを強制的に上書きするには?
-
[解決済み】ローカルの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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] 現在のブランチのトラッキング情報がありません。
-
[解決済み】GitHub: クローンには成功したが、チェックアウトに失敗した
-
[解決済み】Git Extensions。Win32 エラー 487: cygwinのヒープ用に領域を確保できなかった、Win32エラー0
-
gitコミット発生 ! [リモート拒否] master -> master (pre-receive hook declined) 解決策
-
[解決済み] git: fatal: リモートリポジトリから読み取れませんでした。
-
[解決済み] git stashを元に戻す
-
[解決済み] 短いGitバージョンのハッシュを取得する
-
[解決済み] GitHubです。パーミッションが拒否されました (公開鍵)。
-
[解決済み] Git のアンプッシュされたコミットを表示する
-
[解決済み] masterブランチとorigin/masterが分岐してしまったので、分岐を解除する方法を教えてください。