[解決済み] コミット ID が与えられた場合、現在のブランチにそのコミットが含まれているかどうかを判断する方法は?
2022-02-09 03:01:12
質問
私が行おうとしているのは、バージョンチェックです。私は、コードが最小限のバージョンの上にあることを確実にしたいのです。そこで、現在のブランチに指定されたコミットが含まれているかどうかを知る方法が必要です。
どのように解決するのですか?
この結果を得るには、複数の方法があります。まず、素朴な方法として
git log
を使い、特定のコミットを検索します。
grep
しかし、それは必ずしも正確ではありません。
git log | grep <commit_id>
を使用したほうがよいでしょう。
git branch
を含むすべてのブランチを見つけるために、直接
COMMIT_ID
を使用しています。
git branch --contains $COMMIT_ID
次のステップは現在のブランチを見つけることで、これは
git 1.8.1
を使用しています。
git symbolic-ref --short HEAD
そして、次のように組み合わされます。
git branch $(git symbolic-ref --short HEAD) --contains $COMMIT_ID
しかし、上のコマンドは true か false を返さず、コミットが現在のブランチにあれば終了コード 0 を、なければ終了コード 1 を返す短いバージョンも存在します。
git merge-base --is-ancestor $COMMIT_ID HEAD
終了コードもいいのですが、文字列が欲しいので
true
または
false
を回答として追加し、その後に
if
bash からは次のようになります。
if [ 0 -eq $(git merge-base --is-ancestor $COMMIT_ID HEAD) ]; then echo "true"; else echo "false"; fi
関連
-
[解決済み] Git で直近のローカルコミットを取り消すには?
-
[解決済み] Gitブランチをローカルやリモートで削除するには?
-
[解決済み] コミット前に 'git add' を取り消すにはどうすればよいですか?
-
[解決済み] リモートのGitブランチをチェックアウトするには?
-
[解決済み] 既存の、プッシュされていないコミットメッセージを修正するには?
-
[解決済み] Git リポジトリを以前のコミットに戻すにはどうすればよいですか?
-
[解決済み] 現在のGit作業ツリーからローカル(未追跡)ファイルを削除する方法
-
[解決済み] git rebase の取り消し
-
[解決済み] 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 サブモジュール head 'reference is not a tree' エラー
-
[解決済み] [Solved] 作業ツリーのディレクトリ 'example.com' を作成できませんでした。パーミッションが拒否されました
-
git commit リモートエラー [rejected] master -> master (フェッチファースト)
-
[解決済み] リモートの <ブランチ名> とマージするように設定されていますが、そのような参照は取得されませんでしたか?
-
[解決済み] 短いGitバージョンのハッシュを取得する
-
[解決済み] SourceTree error:1407742E:SSLルーチン:SSL23_GET_SERVER_HELLO:tlsv1警告プロトコルバージョン
-
[解決済み] 現在の支店にはトラッキング情報がありません
-
[解決済み】指定したコミットを含むブランチを一覧表示するには?
-
[解決済み] Git のコミットがどのブランチから来たかを調べる