Мне было интересно, есть ли хорошее решение для экспорта git, которое создает копию дерева без каталога репозитория .git
. Есть как минимум три метода, о которых я знаю:
-
git clone
, за которым следует удаление каталога репозитория.git
. -
git checkout-index
ссылается на эту функциональность, но начинается с "Просто прочитайте нужное дерево в индекс...", которое я не полностью уверен, как это сделать. -
git-export
является третьей стороной script, которая по существу делаетgit clone
во временное местоположение, а затемrsync --exclude='.git'
в конечный пункт назначения.
Ни одно из этих решений на самом деле не показалось мне удовлетворительным. Самый близкий к svn export
может быть вариант 1, потому что оба из них требуют, чтобы целевой каталог был пустым первым. Но вариант 2 кажется еще лучше, предполагая, что я могу понять, что значит читать дерево в индексе.