Diyelim ki Git'te şu durum var:
Oluşturulan bir havuz:
mkdir GitTest2 cd GitTest2 git init
Master'da bazı değişiklikler yapılır ve taahhüt edilir:
echo "On Master" > file git commit -a -m "Initial commit"
Feature1 ustası dallanmış ve bazı çalışmalar yapılmıştır:
git branch feature1 git checkout feature1 echo "Feature1" > featureFile git commit -a -m "Commit for feature1"
Bu arada, ana kodda bir hata bulunur ve bir düzeltme dalı oluşturulur:
git checkout master git branch hotfix1 git checkout hotfix1
Hata, düzeltme dalında sabitlenir ve master'a geri birleştirilir (belki de bir çekme isteği / kod incelemesinden sonra):
echo "Bugfix" > bugfixFile git commit -a -m "Bugfix Commit" git checkout master git merge --no-ff hotfix1
Feature1'deki geliştirme devam ediyor:
git checkout feature1
Özellik dalında düzeltmeye ihtiyacım var, belki de hata da oluştuğundan. Taahhütleri özellik branşımına çoğaltmadan bunu nasıl başarabilirim?
Unsur uygulamamla hiçbir ilgisi olmayan iki branşta iki yeni taahhüt almayı önlemek istiyorum. Çekme isteklerini kullanırsam bu özellikle benim için önemli görünüyor: Tüm bu taahhütler de çekme isteğine dahil edilecek ve zaten yapılmış olmasına rağmen gözden geçirilmesi gerekecek (düzeltme zaten anada olduğu için).
Yapamam git merge master --ff-only
: "ölümcül: Hızlı ileri, iptal etmek mümkün değil", ama bunun bana yardımcı olup olmadığından emin değilim.
git rebase
benim için kara büyü gibi görünüyor ....
git branch feature1
ve git checkout feature1
birleştirilebilir git checkout -b feature1
ve 4. tamamen azaltılabilirgit checkout -b hotfix1 master
feature1
tamamen yerel ise, bir göz atıngit rebase
.