2016-05-17 4 views
0

Lassen Sie uns sagen, dass mein Diagramm so aussieht begehen:Git - von der Master-Branching mit alten begehen

1 -- 2 -- 3 -- 4 
       | 
      master 

Nun würde ich gerne von HEAD verzweigen mit commit # 2, dh ich möchte etwas haben, wie dass

   branch 
       | 
       5 
       /
1 -- 2 -- 3 -- 4 
       | 
      master 

aber ich mag # 5 gibt den Status der Dateien in begehen # 2 begehen.

Ist das möglich?

Danke

Antwort

1

Hängt davon ab, ob Sie Ihre neue verpflichten zu enthalten haben die gleichen Änderungen wie # 2 (wenn möglich, es Konflikte zusammenführen könnten, die dies zu verhindern):

git checkout -b branch 
git cherry-pick hashOfSecondCommit 

oder ob Sie wollen alle die Dateien genau die Art und Weise betrachten sie zum Zeitpunkt der # 2 tat

git checkout -b branch hashOfSecondCommit 
git reset --soft master 
git commit 

Was cherry-pick ist es, ein anderes Commit "wiederzugeben", und reset --soft ändert, was der "aktive" Commit ist, ohne die Dateien im Arbeitsverzeichnis zu ändern (im Gegensatz zu checkout).

+0

Vielen Dank! git reset --soft ist was ich gesucht habe. – Gilad

0

Neben @AasmundEldhuset git Kirsche-Pick, könnten Sie auch Git Rebase verwenden.

Es sieht aus wie in dem neuen Zweig entfernen 3 und 4.