Nasıl Gıt belirli revizyon tek bir dosya almak için?
Git deposu var ve bazı dosya birkaç ay önce nasıl göründüğünü görmek istiyorum. O tarihte revizyon buldum: 27cf8e84bb88e24ae4b4b3df2b77aab91a3735d8
. Bir dosya gibi görünüyor ve aynı zamanda bir dosyaya kaydetmek ne yaptığını görmek istiyorum.
Dosya gitk
kullanarak görmeyi başardım ama bunu kaydetmek için bir seçenek yok. Komut satırı araçları ile, oldu en yakın çalıştım:
git-show 27cf8e84bb88e24ae4b4b3df2b77aab91a3735d8 my_file.txt
Ancak, bu komut bir fark ve dosya içeriğini gösterir. Daha sonra PAGER=cat
ve bir dosyaya çıktı yönlendirmek gibi bir şey kullanabilirsiniz biliyorum, ama gerçek dosya içeriğini almak için nasıl bilmiyorum.
Temelde, gibi bir şey arıyorumsvn kedi.
CEVAP
Kendi cevap tamamlamak için, sözdizimi gerçekten
git show object
git show $REV:$FILE
git show somebranch:from/the/root/myfile.txt
git show HEAD^^^:test/test.py
Komut revizyon her zamanki tarzı, aşağıdakilerden birini kullanabilirsiniz anlam kazanıyor:
- isim (ash suggested) Şubesi
HEAD
x^
karakter sayısı- Belirli bir revizyon SHA1 karması
- İlk birkaç (belki 5) verilen SHA1 karma karakter
İpucuÖnemli kullanırken hatırlamak "git show
",her zaman depoyu kökünden bir yol belirtingeçerli dizin pozisyon değil.
Mike Morearty bahseder rağmen (en azından 1.7.5.4, koyarak göreli bir yol belirleyebilirsiniz git "./
" yolun başında örneğin:--
git show HEAD^^:./test.py
)
Git1 önce.5.x, bazı sıhhi tesisat ile yapılmadı
git ls-tree <rev>
bir veya daha fazla listesi 'blob' içindeki nesneleri işlemek göster
git cat-file blob <file-SHA1>
belirli bir revizyon içinde (benzer svn işlendiği dosya kedi
kedi).
ls-ağaç gıt bir dosya sha1 verilen değerini almak için kullanın
git cat-file -p $(git-ls-tree $REV $file | cut -d " " -f 3 | cut -f 1)::
git-mi-ağaç listeleri nesne KİMLİĞİ için $dosya revizyon $REV, bu kesim dışarı çıktı ve kullanılan argüman olarak git-kedi-dosya, gerçekten adı git-kedi-nesne, ve sadece döker nesneye stdout.
Nasıl dosya boyutu belirli bir yol alm...
Nasıl bir dosya adı kullanarak uygun b...
Nasıl bir şube sadece bir dosya almak ...
Nasıl Python ile bir mutlak dosya yolu...
Python nasıl bir yol uzantısı olmadan ...