Другое решение было бы, если вы хотите, чтобы файлы находились в другом каталоге, чем рабочий каталог, использовать git archive
.
Сначала создайте свой ref с git branch
(на самом делелюбые ветки в git, они называются refs, которые указывают на коммит и, следовательно, на всю историю, стоящую за ним):
git branch oldversion <refspec>
См. git help branch
, что такое refspec (SHA1, относительный"путь" из другого refspec и т. д.).
Затем создайте каталог, в котором вы хотите разместить ваши старые файлы (назовем его /path/to/oldstuff
), и используйте архив git из каталога проекта:
git archive oldversion | tar xvf - -C /path/to/oldstuff
Пример: я все время использую последнее ядро Linux, и у меня есть его git-репозиторий плюс стабильное дерево Грега К.Х.Когда я хочу иметь дерево самого последнего стабильного дерева для его компиляции, вот что я делаю (здесь, для стабильного ядра 3.1.6):
$ cd /usr/src/linux-git
$ su
# git archive --prefix=linux-3.1.6/ v3.1.6 | tar xvf - -C ../