2011-05-29 14 views
5

Projem, bir dizi 3. taraf kitaplığını kullanır. http://progit.org/book/ch6-7.html'da açıklanan alt birleştirme prosedürünü kullanıyorum. Ben diğer geliştiricilerin yaparak kütüphane repo gelen güncellemeleri kütüphaneleri korumak ve periyodik birleştirme izin vermek istiyorum: rack_remote ve rack_branch yayınlamak için bir yolu var mıGit alt ağaçlarını birleştirilmiş sitelerden birleştirmek

$ git checkout rack_branch 
$ git pull 

, bu yüzden merkez depo parçası olacak Diğer geliştiricilerin de bunları kullanmasına izin vermek için?

cevap

2

Muhtemelen projenizin belgelerinin bir kısmındaki her alt alanın “yukarı akışına” ilişkin öneki, URL'yi ve dalı belgelemelisiniz. Aşağıdaki örnekler, bu bilgilerin genellikle alt ağaç birleştirme taahhüt iletilerinize kaydedileceğini gösterir, ancak bu, birleştirmelerin ve/veya çekmelerin yapılmasının tam yoluna bağlıdır.


ilk alt ağaç birleştirme bu komutları ile oluşturmak düşünün:

git merge --no-commit sub/master 
git read-tree -u --prefix=sub sub/master 
git commit 

aşağıdaki olacak iletiyi taahhüt:

Merge remote-tracking branch 'sub/master' 

Biz uzaktan sub seçildi olduğunu görebilir ve şube master olarak adlandırıldı, ancak URL'yi görmüyoruz. Son adımda manuel işlemi yaparken mesaja URL'yi ekleyebilirsiniz.

Daha sonra, yeni “akıntıya karşı” değişiklikleri dahil etmek git pull kullanabilirsiniz:

git pull -Xsubtree=sub sub master 

varsayılan mesaj işlemek depo URL ve şube adı içerecektir:

Merge branch 'master' of server:path/to/repository 

Öte yandan bir dal adı kullanmak yerine, doğrudan birleştirme işlemine atıfta bulunan ilk birleşme ve müteakip birleştirmelerdeki varyasyonlar (ör.yerine 15dbbda), şube adının kaydedilmesini engelleyecektir; Aynı şey, birisi sub master yerine . remotes/sub/master'dan almaya karar verirse URL'yi kaydetmemek için de geçerlidir.

0

Bunun yerine submodules kullanmayı düşündünüz mü? İş akışınıza uyacak gibi görünüyor.

+0

İçe aktardığım kütüphaneleri değiştireceğim ve bu değişiklikleri yayınlamak istemiyorum. Alt modüller harici depolarda yerel değişikliklere izin veriyor mu? Yoksa harici depolara mı bağlanıyorlar? – wanderingbear

İlgili konular