Çatal ve senkronize Google Code Subversion GitHub içine depo
Nasıl erişmek için, GitHub deposuna yazmak zorunda olmadığımı ve Google Code Subversion bir depo ile senkronize çatal alabilir miyim?
Git benim depo içinde kendi özelliklerini geliştirmek mümkün olmak istiyorum, ama aynı zamanda Google Code Subversion deposuna karşı senkronize etmek istiyorum. Getirmek için Google Kod proje tarafı giderir.
Git-svn biliyorum ve daha önce yukarı ve üzerinde tam kontrol vardı depoyu bir Bozulma yönünde hareket etmesi için kullanılır. Ama Google Code Subversion ile senkronize depo tutmak nasıl bilmiyorum.
CEVAP
Git-svn uzak şube oldukça düzenli Gıt aynı uzak. Yerel depo olarak git-svn senin klon var ve değişiklikleri GitHub için dışarı doğru itin. Git umursamıyor. Sen git-svn senin klon oluşturmak ve aynı değişiklikleri GitHub için dışarı itmek, Google Kod deposu resmi olmayan bir ayna var. Geri kalan vanilya Git.
git svn clone http://example.googlecode.com/svn -s
git remote add origin git@github.com:example/example.git
git push origin master
Bu şimdi ara sıra Gıt ile Subversion deposu senkronize etmek zorunda kalacak. Bir şey gibi görünecektir:
git svn rebase
git push
Gitk ya da her neyse, bu, bu gibi bir şey olacaktır:
o [master][remotes/trunk][remotes/origin/master]
|
o
|
o
Ve çalıştırdığınızda git svn rebase
Bu olurdu:
o [master][remotes/trunk]
|
o
|
o [remotes/origin/master]
|
o
|
o
Şimdi git push
Bu bastıracağını çalışan GitHub, taahhüt eder[uzaktan kumanda/origin/master]şube var. Ve bu senaryo için ilk ASCII sanat şemada olurdu.
Şimdi sorun, nasıl yaptığınız değişiklikleri çalışma içine girdi. Bu fikir, şimdiye kadar git-svn-rebase-ing ve git-iterek aynı dalın üzerine işlemek yok. Yaptığınız değişiklikler için ayrı bir şube gerekir. Aksi takdirde, Git deposu, klonlar herkes üzgün olan Subversion olanlar, üzerinde yaptığınız değişiklikleri rebasing sona erecekti. Beni takip eder misin? Bir şube oluşturmak TAMAM, bu yüzden, bırakalım "" vardır. Ve bir taahhüt olun ve fazla şube için GitHub için dışarı itmek. Senin gitk bu gibi bir şey olacaktır
o [features][remotes/origin/features]
|
o
|
o [master][remotes/trunk][remotes/origin/master]
|
o
Burada özellikleri tamamlar birkaç Google Code şube, sağ önde şubesi var? Google kodundan yeni şeyler eklemek istediğinizde ne olacak? git svn rebase
ilk çalıştırma ve bu olsun istiyorum:
o [features][remotes/origin/features]
[master][remotes/trunk] o |
| o
o /
|/
o[remotes/origin/master]
|
o
17 ** efendim, tahmin edersiniz[uzaktan kumanda/origin/master]usta aynı noktada olmak. Ama özellik Şubesi değişiklikler yok. Seçimlerinizi şimdi özellikleri, ya da rebase özellikleri içine ana birleştirme. Birleştirme bu şekilde görünecektir
git checkout features
git merge master
o [features]
/|
/ o [remotes/origin/features]
[master] o |
| o
o /
|/
o
|
o
Sonra GitHub özellikleri dışarı itin. Master için uzaktan kumanda alanı kazanmak için terk ettim, aynı noktada gibi olurlardı[ana].
Rebase yaklaşımdır biraz daha kötü - daha iyi mi olurdu bas --güç olarak bas olmadığını ileri birleştirme (edersin çekme özellikleri şubesinden altında birisi vardı klonlanmış). Gerçekten TAMAM bu sayılmaz, ama kimse Eğer kararlı iseniz sizi durduramaz. Bazı şeyler çok daha kolay, biraz elden şeklinde yamalar memba kabul edilmek gibi. Çatışmalar, sadece rebase --upstreamed yamalar atlayabilirsiniz kafa bulmaya gerek tasarruf ederlerdi. Her neyse, bir rebase gibi olacaktır:
git rebase master features
o [features]
|
o
| o [remotes/origin/features]
[master] o |
| o
o /
|/
o
|
o
Ve sonra 20* *o olurdu. Kaba kuvvet uygulamak gerekir neden görebilirsiniz, geçmişinden gelen eski büyük bir ayrılık vardır[uzaktan kumanda/menşe/özellikler]post-rebase yeni akım[özellikler].
Bu çalışır, ama çok fazla çaba gerektiriyor. Eğer düzenli bir katılımcı olacak iseniz, en iyi bahis bir süre için bu gibi işler, bazı yamalar Yukarı gönderin ve eğer Subversion erişimi taahhüt almaya çalış. Bu, belki de başarısız değişiklikleri GitHub için dışarı itmek yok. Onlara yerel ve akıntıya karşı yine de onları kabul etti.
GitHub wiki (gollum) bir depo içine gö...
Github: çatal içine memba şube Al...
Nasıl Google Analytics GitHub Sayfalar...
Nasıl bir depo için bir Subversion dep...
Hata GitHub için bastırıyor - yetersiz...