検索

ホームページ  >  に質問  >  本文

git チェリーピックの問題?

新しいウェアハウスを作成し、そこにテキスト ファイルを 1 つだけ配置し、それぞれ 6 つのコミットを作成します。この時点で、git log --oneline は次のようになります

ファイルの内容は次のとおりです

442452d コミットを破棄したいが、e09949e コミットは保持したい。その方法は次のとおりです。
git replace --hard 260effc
次に git Cherry-pick e09949e

以下に示すように、この時点で競合が発生しました

私が理解できないのは、論理的に言えば、e09949e の送信には '3' ではなく '4' だけが含まれているはずです。 「3」が手動で削除された場合、ファイルを削除するだけでは意味がありませんか? それとも私の使用法に何か問題があるのでしょうか?神に導きを求めてください! ! !

世界只因有你世界只因有你2794日前695

全員に返信(2)返信します

  • PHP中文网

    PHP中文网2017-05-02 09:34:56

    git revert 442452d だけではどうでしょうか?

    Commit は相対的な変更を記録し、変更されたコンテンツの上位行と下位行に関連します。前の行が失われると、競合が報告されるため、手動で解決する必要があります。 2 つのコミットが関連関数内に存在しなくなった場合は、直接元に戻すことができます。

    さらに、このリセット --ハードを実行してからチェリーピックする方法を使用することは良くありません。他の共同作業者が途中で他のコミットを追加し、その後の競合処理がより困難になる可能性があります。

    cherry-pick より良い使用シナリオは、1 つのブランチ上に別のブランチの別の機能が必要な場合です。

    返事
    0
  • 漂亮男人

    漂亮男人2017-05-02 09:34:56

    e09949e には 4 のみが含まれているため、これは前のコミット 442452d との差分です。 e09949e只包含4,是针对前一个commit442452d的差异而言。

    可你现在把442452d给去掉了,希望把e09949e的父节点从442452d指到260effc

    しかし、現在は 442452d を削除し、442452d から e09949e の親ノードを 260effc にポイントしたいと考えています。確かに紛争になるだろう。

    動画なしで私の説明が明確かどうかわかりません。質問がある場合は、まずこのチュートリアルをプレイすることをお勧めします。 🎜

    返事
    0
  • キャンセル返事