私たちのプロジェクトは最近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 のマニュアルページ。