我們的專案最近從 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 手冊頁。