2

私はマスターから作業していて、いくつかの悪いコミットを行いましたC& D.

A --- B --- C --- D (MASTER)

そこで、 and/orコミットB内の間違いを見つけようとするよりも簡単だと思ったので、既知の適切なコミットから作業を再開することにしました。しかし、何らかの理由で新しい試みがうまくいかなかった場合に戻るオプションも必要でした. そのため、最初に を指す切り離された HEADを作成し、次に新しいブランチ (RETRY) を作成しました。私の git リポジトリは次のようになります。CDDB

A --- B --- C --- D (MASTER)
       \
        \
         E --- F (RETRY)

結局のところ、作業を再開する方が簡単でB、私のコミットFは素晴らしく機能します。Cだから今、私の質問は次のとおりです。 andで行われたすべての作業とマージせずに MASTER を F にポイントさせるにはどうすればよいですかD(ただし、将来参照したい場合に備えてCand をコミットし続けます)。D私は最終的にしたい:

A --- B --- C --- D
       \
        \
         E --- F (MASTER)
4

2 に答える 2

4
git checkout master
git branch old
git reset --hard retry 

master と同じコミットを指す新しいブランチ ( と呼ばれるold) を作成します (ただし、切り替えはしません)。次に、 master と同じコミットを指すように移動masterretryます。

于 2013-01-10T10:51:16.003 に答える
1

まず、いくつかのブランチを作成します。たとえばold_master、失敗した作業へのポインターとして保持しますmaster

git branch old_master master

ここで、masterF を指摘します。

git checkout master
git reset --hard F

後でチェックアウトしold_masterて、古い悪いコミットを確認できます。

于 2013-01-10T11:00:54.160 に答える