[解決済み] Git でマージコミットの親を取得するにはどうしたらいいですか?
2022-04-28 14:35:41
質問
Gitコマンドの中には、親をリビジョンとするものもあれば
git revert
) の親番号として使用します。どうすれば両方の場合の親を取得できますか?
グラフィカルなログコマンドを使用すると、長いツリーをスクロールして2番目の親を探さなければならないことが多いので、使用したくありません。
どのように解決するのですか?
簡単
git log <hash>
マージコミットに対して呼び出されたものは、その親のハッシュを省略したものを表示します。
$ git log -1 395f65d
commit 395f65d438b13fb1fded88a330dc06c3b0951046
Merge: 9901923 d28790d
...
git
は、親をその番号に従って出力します。最初の (左端の) ハッシュが最初の親を表し、以下同様です。
ハッシュだけでいいのなら、同等の2つの選択肢があります。
$ git log --pretty=%P -n 1 <commit>
$ git show -s --pretty=%P <commit>
git rev-list
は親のハッシュも表示できますが、最初にコミットのハッシュが表示されます。
$ git rev-list --parents -n 1 <commit>
親を調べる場合は、カラットで直接参照できるように
<commit>^1
と
<commit>^2
, 例:
git show <commit>^1
これは一般化されたものです。
th
の親を
<commit>^n
. ですべての親を参照することができます。
<commit>^@
ただし、単一のコミットが必要な場合は、この方法は使えません。nの後に追加のサフィックスを付けることができます。
th
の親構文(例えば
<commit>^2^
,
<commit>^2^@
の後ではできない)。
^@
(
<commit>^@^
は有効ではありません)。この構文について詳しくは
rev-parse
のマニュアルページをご覧ください。
関連
-
[解決済み] Git で直近のローカルコミットを取り消すには?
-
[解決済み] Gitブランチをローカルやリモートで削除するには?
-
[解決済み] git pull」と「git fetch」の違いは何ですか?
-
[解決済み] コミット前に 'git add' を取り消すにはどうすればよいですか?
-
[解決済み] リモートのGitブランチをチェックアウトするには?
-
[解決済み] 既存の、プッシュされていないコミットメッセージを修正するには?
-
[解決済み] Git リポジトリを以前のコミットに戻すにはどうすればよいですか?
-
[解決済み] 現在の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マージで「すでに最新」と報告されるが、違いはある
-
[解決済み】git rev-parseは何をするのですか?
-
[解決済み】git push >> fatal: 設定されたプッシュ先がありません。
-
git commits with an error: 更新が拒否されました。現在のブランチの先端が、このブランチより後ろにあるためです。
-
[gitコミット失敗の解決] 現在のブランチの先端が後ろにあるため、更新が拒否されました。
-
[解決済み] GitHubに空のブランチを作成する
-
[解決済み] git ls-remote と git ls-remote origin の違い。
-
[解決済み] Git エラー : 'upstream' は git リポジトリでないようです。
-
[解決済み] 新しいBitbucketでリポジトリを削除するにはどうすればよいですか?