[解決済み] git bisect を使って最初の GOOD コミットを見つけるには?
2022-11-10 06:31:56
質問
次のような問題があります。
-
にあるバージョンは
master
は正常に動作します。 -
の前にある最後のタグのバージョンは
master
(例えばlast
にはバグがあります。 -
同僚が自分の
last
リビジョンのバグを修正する必要があります。
なるほど。私たちの友人に聞いてみましょう
git bisect
にバグを修正したリビジョンを聞いてみましょう。
git bisect start
git bisect bad last
git bisect good master
でも、それじゃダメなんです。
良いレヴの中には、悪いレヴの祖先ではないものもある。
git bisectはこのような場合、正しく動作させることができません。
もしかして、良いレヴと悪いレヴを間違えていませんか?
これを克服するためのヒントはありますか?私はドキュメントで何かを見逃していますか?
どのように解決するのですか?
git 2.7から、--term-oldと--term-newという引数を使うことができるようになりました。
たとえば、問題を修正したコミットをこのように識別することができます。
git bisect start --term-new=fixed --term-old=unfixed
git bisect fixed master
git bisect unfixed $some-old-sha1
テストするときに、例えば
git bisect fixed
または
git bisect unfixed
を適宜使用します。
古い回答ですが、2.7 より前のバージョンの git のためのものです。
悪いことは良いこと、良いことは悪いことだと思うように一時的に訓練する代わりに、いくつかの別名を作ってみてはどうでしょうか。
で
~/.gitconfig
に以下を追加します。
[alias]
bisect-fixed = bisect bad
bisect-unfixed = bisect good
このようにして、問題解決のためのコミットを特定し始めることができます。
$ git bisect start
$ git bisect-fixed master
$ git bisect-unfixed $some-old-sha1
テストするときに、例えば
git bisect-fixed
または
git bisect-unfixed
を適宜使用します。
関連
-
[解決済み] Git で直近のローカルコミットを取り消すには?
-
[解決済み] コミット前に 'git add' を取り消すにはどうすればよいですか?
-
[解決済み] Git リポジトリを以前のコミットに戻すにはどうすればよいですか?
-
[解決済み] 現在のGit作業ツリーからローカル(未追跡)ファイルを削除する方法
-
[解決済み] リモート Git リポジトリの URI (URL) を変更するには?
-
[解決済み] ローカルの Git リポジトリが元々クローンされた URL を特定するにはどうすればよいですか。
-
[解決済み] コミットに含まれるすべてのファイルを一覧表示するにはどうすればよいですか?
-
[解決済み] ある特定のコミットのコミット作者を変更する方法は?
-
[解決済み] 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/FETCH_HEAD を開けない: パーミッションが拒否されました。
-
git pull reports エラー: :cannot open .git/FETCH_HEAD:Permission denied (.git/FETCH_HEADを開くことができません。
-
Git Bashが致命的に表示される:この操作は作業ツリーで実行する必要がある
-
git を使用してリモートリポジトリを更新する場合、現在のブランチの先端がエラーの背後にあるため、更新が拒否されました。
-
git occurs このリポジトリで別のgitプロセスが動作しているようです。例えば、.NETで開いたエディタなど。エラー
-
fatal: パス仕様 'readme.txt' がどのファイルにもマッチしなかった Solution
-
git のコンパイルとインストールの問題を解決する fatal: https のリモートヘルパーが見つからない
-
[解決済み] stash@{1}は曖昧?
-
[解決済み] GitHubのウェブサイト上でディレクトリやフォルダの名前を変更するには?
-
[解決済み] ファイル変更時のDockerコンテナの再構築