2011-09-25 20 views
8

Birden çok komut dosyası içeren bir repo'um var. Bunlardan biri özellikle yararlı ve GitHub kullanarak paylaşmak istiyorum.Yerel bir depodan GitHub'a yalnızca bir dosya aktarın

Tek bir dosyayı (işlem geçmişi olan) aynı repo dosyasından tüm diğer komut dosyalarını paylaşmadan bir GitHub repo dosyasına nasıl dışa aktarabilirim? gibi

şey:

git remote add 'origin' [email protected]:user/Project.git 
git push -u 'origin' ./useful-script.sh 

Ama nasıl tek dosya adı belirtebilirim? Ya da bir çeşit özel 'kısmi' taahhüt yaratmalı mıyım? iş yapmalıyım

git filter-branch --index-filter ' 
    git rm --cached -f -r .; 
    git add ./useful-script.sh; 
' --all 

:

cevap

3

Sen tarihi yeniden yazmak ve bu tek dosyada ama her şeyi şerit filter-branch kullanmak gerekir.

--index-filter çalışmıyorsa (bu git add burada olduğundan emin değilim), aynı argüman ile `--tree-filter 'seçeneğini deneyin.

+1

'git filter-branch - index-filter 'git rm --cached -fr. ; git/./useful-script.sh 'ekleyin -. Sanırım dosya rm tarafından kaldırıldı ve bu bir hata veriyor: "fatal: pathspec 'amarocker' herhangi bir dosya ile eşleşmedi". – kolypto

+1

xargs ile denendi: 'git filter-branch - index-filter 'git ls-tree -r - sadece isim master | fgrep -v kullanışlı-script.sh | xargs git rm --cached -fr '- - tüm. Ne yazık ki, bu yapraklar diğer dosyalarla ilgili taahhütler bozulmamış :( – kolypto

+0

Aynı sonuç. Teşekkür ederim, en azından bu biraz umut veriyor :) – kolypto

İlgili konular