問題タブ [git-bisect]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
4 に答える
3667 参照

git - 1 つのブランチのコミットでのみ「git bisect」する方法は?

私が現在取り組んでいるプロジェクトでは、各機能を独自のブランチに保持し、機能の準備ができたらマスターにマージします。各機能ブランチ内のコミットには、完成して安定するまで、多くの「WIP」および他の機能の破壊的な機能が含まれる場合があります。

git bisectとにかく、マスター ブランチのコミットは唯一の (おそらく) 安定したものなので、そのブランチだけにしたいのです。

git bisect1 つのブランチだけに制限する方法はありますか?

0 投票する
1 に答える
91 参照

algorithm - 一連の git プロジェクトが壊れたときを見つけるアルゴリズムは?

N一緒に release/ repository を定義する git プロジェクトがあるとしましょうR

R健全性テストに合格した場合T、それを良いRと呼び、失敗した場合は悪いと呼びますR

私はスクリプトを考え出し、将来的にそれをgoogle repoにプッシュしたいと考えています。これは、 git プロジェクトによって定義されgit bisectたリポジトリのメカニズムを一般化します。RN

目的は、Rbest という名前の最新の商品を見つけることですR。VonC は素晴らしいサブモジュールを使用したソリューションを提案しましたが、 git プロジェクト (Android など)repo-googleを含むベースのリポジトリのソリューション/アルゴリズムを探しています。N

0 投票する
1 に答える
598 参照

git - git bisect に渡す最新の適切なコミットを見つける

Git リポジトリで何かが失敗していることに突然気付いたとします。しかし、数コミット前に機能していたことは知っていますが、どのコミットかは覚えていません。git bisect を実行するために「適切な」コミットを見つけようとする代わりに、Git に (おそらく bash スクリプトを使用して) 尋ねたいのですが、最新の「適切な」コミットは何ですか?

少し前のコミットを選択してそれを良いものとして使用しないもう 1 つの理由は、私のレポには多くの悪いコミットと良いコミットが混在しているためです。直線的ではありません。

では、最新のコミットから始めて必要なだけループし、悪い場合は 1 を返し、良い場合は 0 を返すコマンドを実行するにはどうすればよいでしょうか?

0 投票する
2 に答える
764 参照

git - `git bisect` または `git log -S --all` によって検出されないマージ コミットによって行われた変更

ファイルを修正し、gitリポジトリにコミットしました。

しばらくして、それが後退していることに気づきました。どのコミットで修正が行われたか知りたかったので、 と を試してみましたgit bisectgit log --all -S TERMここで、「TERM」は修正によって追加された文字列で、プロジェクトのどこにも表示されませんでした。

無関係なコミットをgit bisect非難し、git log --all -S TERMTERM を追加したコミットのみをリストし、「マスター」のファイルに存在しなくなったにもかかわらず、それを削除したコミットをリストしていないことがわかりました。

手動で検索した後、2 つのブランチ間でマージ コミットがあったことがわかりました。1 つのブランチには修正があり、1 つのブランチには修正がありませんでした。マージ作成者は、私の修正なしでブランチを選択しました (ファイルに競合がなかったため、奇妙です)。

私の質問は次のとおりです。

  • git bisectマージの変更が見つからないのはなぜですか? この制限に関するマンページには何も表示されません。上記のシナリオで悪いマージを見つける別の使用方法はありますか?
  • git log --all -S TERMマージコミットをリストしないのはなぜですか? マンページには、「のインスタンスを導入または削除する」コミットがリストされていると書かれています。そのマージコミットは私の文字列を削除しませんか? 上記のシナリオで悪いマージを見つける別の使用方法はありますか?
  • git bisect上記のシナリオでとgit log -Sが役に立たない場合、悪いマージを見つける効率的な方法は何ですか? これらのツールなしで問題の変更を追跡するには、かなり時間がかかります。