Самый простой способ получить более ранний тэг для целей только для чтения в Git - PullRequest
4 голосов
/ 22 октября 2010

У меня есть рабочее дерево на моей локальной машине, а также удаленный репозиторий. Допустим, я хочу быстро собрать более раннюю версию своего проекта по известному тегу, не нарушая текущего состояния рабочей версии. Я предпочитаю оформить отдельное дерево, которое выглядит так:

Загрузка определенного тега с помощью Git

С клоном из удаленного репозитория и последующей проверкой. Но клон выполняет большую работу и рушит все состояние ревизии. Есть ли какой-нибудь легкий способ сказать: "захватите меня с текущим состоянием мира в этом коммите / теге и поместите его в этот каталог?" (Дальнейшее управление ревизиями не требуется - это «только для чтения», насколько это касается Git.)

Может, нет ... просто проверяю.

Спасибо.

Ответы [ 3 ]

5 голосов
/ 22 октября 2010

Если все локально, вы можете сделать это:

mkdir /path/to/test-tree
cd /path/to/repo
git read-tree <tag>
git checkout-index -a --prefix=/path/to/test-tree/  # don't forget the last slash

# read-tree copies content into the index
# to restore it:
git read-tree HEAD

Это предполагает, что вы не заботитесь о том, чтобы другое дерево имело какую-либо информацию о git. Если вы хотите, вы можете использовать сценарий git-new-workdir , который в основном создает клон, за исключением заполнения каталога .git символическими ссылками на исходное хранилище, так что он не требует дополнительных дисковое пространство. Это хороший подход - нет дополнительного дискового пространства, и вы можете использовать один репозиторий для разработки, один для тестирования и т. Д.

1 голос
/ 22 октября 2010

Попробуйте

git checkout -b new_branch [previous_tag]
0 голосов
/ 22 октября 2010

Звучит так, как будто вы ищете git-export: Есть ли "экспорт git" (например, "svn export")?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...