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

Рой Ошерове в своей знаменитой книге «Искусство модульного тестирования» говорит:

Свойства (getters / seters в Java) - хорошие примеры кода, который обычно не содержит никакой логики, и не требует тестирования. Но будьте осторожны: как только вы добавите какую-либо проверку внутри свойства, вы захотите проверить, проверена ли логика.

1839
задан Neil Graham 29 January 2017 в 19:05
поделиться

5 ответов

$ git clone

предоставит вам весь репозиторий.

После клона вы можете перечислить теги с помощью $ git tag -l , а затем извлечь конкретный тег:

$ git checkout tags/<tag_name>

] Более того, извлеките и создайте ветвь (в противном случае вы будете находиться на ветке, названной по номеру ревизии тега):

$ git checkout tags/<tag_name> -b <branch_name>
2818
ответ дан 22 November 2019 в 20:02
поделиться

I ' Я не эксперт по git, но я думаю, что это должно сработать:

git clone http://git.abc.net/git/abc.git
cd abc
git checkout my_abc 

ИЛИ

git clone http://git.abc.net/git/abc.git
cd abc
git checkout -b new_branch my_abc

Во втором варианте создается новая ветвь на основе тега, которая позволяет вам избежать «отсоединенного HEAD». (руководство по git-checkout)

Каждое git-репо содержит всю историю ревизий, поэтому клонирование репо дает вам доступ к последней фиксации, плюс все, что было до этого, включая тег, который вы ищете.

97
ответ дан 22 November 2019 в 20:02
поделиться

Вы можете использовать архив git для загрузки tar-файла для данного тега или идентификатора фиксации:

git archive --format=tar --remote=[hostname]:[path to repo] [tag name] > tagged_version.tar

Вы также можете экспортировать zip-архив тега.

  1. Список тегов:

     git tag
    
    0.0.1
    0.1.0
    
  2. Экспорт тега:

     git archive -o /tmp/my-repo-0.1.0.zip --prefix = my-repo-0.1.0 / 0.1.0
    
  3. Примечания:

    • Вам не нужно указывать формат. Он будет выбран именем выходного файла.
    • Указание префикса приведет к экспорту вашего кода в каталог (если вы включите косую черту в конце).
81
ответ дан 22 November 2019 в 20:02
поделиться

Я проверил документацию по проверке git и обнаружил одну интересную вещь:

git checkout -b , где - это имя коммита , с которого начинается новая ветвь; По умолчанию HEAD

Таким образом, мы можем указать имя тега (как тег - не что иное, как имя коммита), например:

>> git checkout -b 1.0.2_branch 1.0.2
позже измените некоторые файлы
>> git push --tags

PS: В Git вы не можете обновить тег напрямую (поскольку тег - это просто метка для фиксации), вам нужно проверить тот же тег, что и ветку, а затем зафиксировать его, а затем создать отдельный тег.

16
ответ дан 22 November 2019 в 20:02
поделиться

Если ваши теги можно сортировать с помощью команды linux sort , используйте это:

git tag | sort -n | tail -1

например. если git tag возвращает:

v1.0.1
v1.0.2
v1.0.5
v1.0.4

git tag | sort -n | tail -1 выведет:

v1.0.5

git tag | sort -n | хвост -2 | head -1 выведет:

v1.0.4

(потому что вы запросили второй самый последний тег)

для проверки тега, сначала клонируйте репо, затем введите:

git checkout v1.0.4

.. или любой другой тег, который вам нужен.

18
ответ дан 22 November 2019 в 20:02
поделиться
Другие вопросы по тегам:

Похожие вопросы: