Наш проект недавно переехал с Sourceforge на GitHub. Миграция не включала теги subversion. У меня очень мало навыков работы с Git, поэтому я использовал2.6 Основы Git — Тегированиев качестве гида.
Я выполнил проверку Git:
$ git clone https://github.com/weidai11/cryptopp.git cryptopp-git
Затем я просмотрел и воспроизвел теги за последние 15 лет, используя:
# Produce a log file
$ git log --all --oneline > git.log
# Look for the subversion commit (yes; it was a CVS migration 15 or so years ago):
$ awk 'NR==(872-3)' git.log
bf7ae38 This commit was manufactured by cvs2svn to create tag 'CRYPTOPP_5_0'.
# Tag it:
$ git tag -a CRYPTOPP_5_0 bf7ae38
[Add message in emacs]
# Lather, rinse, repeat
...
Далее я попытался их зафиксировать:
$ git commit -m "Rebuild tags after GitHub import"
On branch master
Your branch is up-to-date with 'origin/master'.
nothing to commit, working directory clean
$ git push
Everything up-to-date
Поэтому я перешел на другую машину, чтобы проверить работу. Я выполнил git pull
(Debian 8 Chroot на другой машине):
# git pull
Already up-to-date.
# git show CRYPTOPP_5_0
fatal: ambiguous argument 'CRYPTOPP_5_0': unknown revision or path not in the working tree.
Use '--' to separate paths from revisions, like this:
'git <command> [<revision>...] -- [<file>...]'
Насколько я могу судить, информация не была зарегистрирована на GitHub.
Как именно мне зарегистрировать теги на GitHub?
решение1
Вам нужно использовать --tags
опцию git push
. Это перенесет ваши теги на удаленный компьютер.
git push --tags
Обратите внимание, что это не функция GitHub, а нормальное git
поведение. Также посмотритестраница руководства git push.