2012-05-14 18 views
16

alt dizininden güncelleştirin Github üzerinde geliştirme, genellikle ana dalımda proje için web tabanlı belgeler oluşturduğum bir html/ veya _site/ alt dizinini sürdürüyorum. Gh-pages şubeme ve pull dizinine sadece gh-pages dalının kök dizinine geçiş yapmak istiyorum, bu yüzden github üzerinden güzel bir web sitesi oluşturacak (gh-pages'da 'da username.github.com/repositoryname). Bunu yapmanın en iyi iş akışı nedir?git: bir dalın kök dizinini başka bir

Henüz gh-sayfaları dalını ayarlamadıysam, şubeyi açabilir, şubeyi temizleyebilir ve html dizininin içeriğine kopyalayabilirim, sonra da bir siteye gitmeye hazırım. Ama gh-pages şubesini daha sonra nasıl güncelleyeceğimi bilmiyorum.

git branch gh-pages 
git checkout gh-pages 
# Remove files I don't need from the gh-pages branch 
rm -rf data/ man/ R/ README.md NEWS NAMESPACE DESCRIPTION demo/ 
# move documentation to the root 
mv inst/doc/html/* . 
# remove the rest 
rm -rf inst/ 
git add * 
git commit -a -m "gh-pages documentation" 
git push origin gh-pages 
git checkout master 

Şimdi gh-sayfalarını daha sonra güncellemek için ne yapmalıyım? Bu, subtree merging'u içerebileceği gibi geliyor ama emin değilim.

cevap

13

sizin gh-sayfaları dalı başlatmak için: ana şube html dizini demek,

true | git mktree | xargs git commit-tree | xargs git branch gh-pages 

bunu içine istediğiniz bir şey getir için ağacı okuyup işlemek:

git checkout gh-pages 
git read-tree master:html 
git commit -m'gh-pages documentation' 
git push origin gh-pages 
git checkout master 

ve sen bittin.

Geç ekleme: gh-sayfaları şubesine eklemek için daha kısa bir sekans var: Geçerli çalışma ağacı

+0

yetim şube burada eşit uygun olurdu kızarma gerektirmez

git commit-tree -p gh-pages -m "" master:html \ | xargs git update-ref refs/heads/gh-pages 

? (http://stackoverflow.com/questions/7646487/starting-from-scratch-for-v2-0-should-i-keep-using-the-existing-git-repo-or-sta/7648343#7648343) – VonC

+0

@VonC Ne istediğinize bağlı. Bu şekilde gh-sayfaları dalın tarih tutuyor, eğer yetim yoksa tarih yok. Buradaki yetimin yapılmasının kolay yolu 'git commit-tree v1.6 olacaktır: html -mreset | xargs git dalı -f gh-sayfaları ' – jthill

+0

Anlaşıldı. Herneyse, 'git commit-tree''in oldukça ilginç kullanımı. Yine de cevabınızı vermeyeceğim: Zaten yaptım. – VonC

İlgili konular