2011-10-21 8 views
16

Ana dalda iyi bir taahhüt verdikten sonra, başka bir dalda yapmam gereken bir dizi taahhüt verdim. Bu taahhütleri, belirli bir taahhütle başlayarak, başka bir şubeye taşıyabilirim ve en iyi taahhüdü usta son taahhüdü olarak tutabilir miyim?Git: taşıma işlemi, master'dan başka bir şubeye devrededir

+0

Olası kopyalar (http://stackoverflow.com/questions/1628563/move-the-most-recent-commits-to-a [En son Git ile yeni bir şubesine (ler) işlemek Taşı] -yeni-şube-ile-git) –

cevap

25

Emin:

$ git branch new-branch-name      # Create a new branch from the current commit 
$ git reset --hard <last good commit on master> # Reset master to the good commit 
+0

Bu kolaydı. Teşekkürler! –

+0

Son iki işi master'dan başka bir şubeye kaldırmak istersem. Ustanın son taahhüdünü kontrol ettim, oradan bir şube yapıp sonra HEAD ~ 2'yi sıfırladım? Bu, aynı zamanda şubeden gelen işleri de kaldırmaz mı? Bu, işlemlerin silinmediği anlamına mı geliyor? Sadece master'ın işaretçisi, daha önce iki işi işaret ediyor mu? Bu sıfırlama sadece şube işaretçisini daha önce birkaç işlem yapar? – croraf

+0

@croraf: Şube hala ana üzerinde bulunan önceki iki işi işaret edecektir. – mipadi

1

Evet, yapabilirsiniz ve bu 2 ayrı operasyon olacaktır:

Kopya istediğiniz dalına bir daldan kaydedilmesini onların olmasını:

git cherry-pick <hash_of_commit> --onto <target_branch> 

ana dalını iyi bir işleme geri döndürün:

git checkout master 
git reset --hard <hash_of_good_commit> 
ait
İlgili konular