2013-04-02 19 views
25

Bu düzgün bir şekilde nasıl sorulacağından emin değilim ama elimden gelenin en iyisini yapmaya çalışacağım - Ben kesinlikle bir Git meraklısıyım, biliyorum temel komutları nasıl kullanacağım gelişmiş terminoloji/işlevsellik değil.Git - Her Şube için farklı Uzaklık

Özel bir sunucudan git.mydomain.com klonlanmış özel bir havuzum var myrepo.

Repo  Branch  Remote Location (Purpose) 
------------------------------------------------------------ 
myrepo --> private --> git.mydomain.com (Incremental work) 
    | 
    +------> public --> github.com  (Public releases) 

Esasen İsterdim: - Ben git checkout -b mybranch ile aynı depo kod dallanma süreci aşina olduğum ancak böyle bir şey sonuçlanan ziyade benim özel sunucu daha GitHub'dan dalına istiyorum git checkout public ve git merge private'a sahip olmak. Git 1.8.0 itibariyle

:

git branch -u origin/foo foo 

Not:

+0

İş akışınız, hazır olduğunuzda bu dalı yalnızca farklı bir kökene (Github) itmek için uygun mu? – noisewaterphd

cevap

30

Bu komutları kullanarak tek tek dalları için farklı bir sunucuya itmek için farklı bir şube ayarlayabilirsiniz son foo ise dışarıda bırakılmış, mevcut dalı seçecektir. Git 1.7.0 itibariyle

:

git branch --set-upstream foo origin/foo 

sizin durumda, size iki kumandalarını (etkialanım ve github) ekleyerek ve ayrı ayrı kendilerine itmek için her dalını ayarlayarak bunu kullanmak.

git branch -u mydomain/private private 
git branch -u github/public public 

sonra:

git remote add github git://github.com/foo/myrepo.git 
git remote add mydomain git://git.mydomain.com/foo/myrepo.git 

Sonra sağ yerlere itmek şube ayarlayın: Henüz varsa kumandalarını eklemek emin olun

: Bu gibi görünebilir Bu ayarlanmış, sadece itme ve git push ve git pull kullanarak çekebilirsiniz. Bu, özel şubenizdeyken ortak şubenizdeyken ve etkialaniniz.com'a gidip github'a çeker.

+1

Harika cevap, teşekkürler! –

+0

@CraigWatson Yardım etmekten memnunum! –

+0

Aynı senaryoda, git ve seçili dosyaları ortak şubeye eklemeyi söylemek mümkün mü? Örneğin, dist, src ve README.md klasörlerim varsa ve sadece dist ve README.md'nin github yani public repo'da görünmesini istiyorsanız, bunu nasıl gerçekleştirebilirim? –