我们的项目最近从 Sourceforge 迁移到 GitHub。迁移不包括颠覆标签。我的 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 手册页。