Git/git-svn öğrenme eğrisi ile savaştım ve geçen gece, bu öğrenme eğrisinin bir parçası olarak, çok ama çok kötü bir şey yaptım. O zamandan beri düzeltildi, ama hatayı benim yollarımı anlamayı umuyorum.Git-svn'yi kullanma: Çekme, Birleştirme veya Yeniden İşleme?
Bagajı ve dalları klonladığım bir svn deposum var (üzerinde çalışmadığımızdan beri göz ardı ettiğim etiketler). budala kullanarak, ben şu anda birlikte çalışması gereken dalların her biri için yerel şubesi oluşturuldu:
$ git checkout -b trunk svn/trunk
$ git checkout -b feature1 svn/branches/development/feature1
$ git checkout -b maint svn/branches/maintenance/previous-version
benim aktif dalı Feature1 yaptı ve birkaç gün uzak çekilmeden önce birkaç değişiklik yaptık. Dün geri döndüğümde, en son ve en iyi şekilde çalışmak için bagaja yapılan tüm değişiklikleri birleştirmek istedim. Yaptığım şey, git svn rebase (özellik1'de başka hiç kimse işe yaramadı) aracılığıyla tüm branşların eksiksiz bir güncellemesiydi. Svn deposumdan bugüne kadar olan her şeyle, yeniden oluşturmaya çalıştım.
Özellik1, aktif şubemde, gövdesindeki değişiklikleri, özellik1 dalına içine çekeceğimi düşünerek bir "git rebase gövdesi" yaptım. Çıkıyor çok ama çok yanlıştım. Tüm çakışmaları birleştirdikten sonra, git svn dcommit yaptım ve değişikliklerin bagaja uygulandığını gördüm.
İlk sorum, düşünce sürecimdeki temel hatanın neresiydi? İkincisi, çok fazla okumadan sonra ve Googling'den sonra, çekme, birleştirme ve geri çekilmeyi destekleyen insanları görüyorum. Bir yerel şubede uygulanan değişiklikleri başka bir yerel şubeye birleştirmek istediğimde, ne yaptım? Bu senaryo için en iyi uygulama nedir?
Yardımlarınız için teşekkürler.
Veri modeli uygulamasına aşina olmadığım doğru mu (iyi URI'lara sahip misiniz?). Eğer rebase ifademi okuyabilseydim, onu “git * aktif şube * - *] gövdesine kadar * düzeltmek mi, yoksa çok mu kısıtlı mı? Teşekkürler. –
* Yukarıdan Bottom Up'dan * (http://www.newartisans.com/blog_assets/git.from.bottom.up.pdf) ve * Git Internals * (http://peepcode.com/products/git-internals -pdf) Git'in yapısını anlamak için her ikisi de çok iyi. (Git Internals $ 9; Aynı sitede bulunan Screencast'i tavsiye etmiyorum). – Paul
Bu, komutu iyi okuyor. Harekete geçirilen nesnenin birçok git komutunda kontrol edilen şube olduğundan hatırlamakta zorlanıyorum. – Paul