2011-07-01 7 views
3

私はマスターブランチで3つのコミットを行いました:C1、C2、C3。 その時点から私は新しい支店Branch1を作った。一部の が変更され、Branch1のC4でコミットされましたか?次のようにGit:masterブランチの以前の/古いコミットから新しいブランチを作成するには?

の観光名所になります。

C1--C2--C3<--Master 
     \  
      C4<--Branch1  

は、しかし、今私は新しいブランチ「支社」をオフにフォークするマスター に早くコミット使いたいです。つまり、マスターブランチでは、 C2で時間を戻して、新しいブランチ にその上に構築したいと思っています。マスターブランチは決して妨害されてはいけません。C5は、新しい 'Branch2'でコミットされた変更を保存したものです。 グラフィカルに、次の図は、私が欲しいものを説明する必要があります:

 C5<--Branch2 
    /
C1--C2--C3<--Master 
     \  
      C4<--Branch1  
  1. コマンドシーケンス(s)はそこに私を取るだろうどのようなgitの?

  2. 私の2番目の質問は、第 図のケースを達成した後、「元に戻す」がマスターブランチにC3を除去するために行われた場合、 それは支社にどのような影響を与えるだろうということですか? Branch1のコードが に壊れるか不安定になるのですか?

答えて

8

単にコミットそれをチェックアウトし、作成するために、ブランチを指定します。

git checkout -b Branch2 C2 

あなたは(git revertまたはgit reset)「を元に戻す」を定義する方法に依存してあなたの2番目の質問のために。どちらの場合も、Branch1にはまだコミットC3が含まれています(gitブランチはちょうど「ポインタ」で、祖先情報はコミット自体に格納されています)。

+0

ご清聴ありがとうございます! –