如果你达到一个重要的阶段,并希望永远记住那个特别的提交快照,你可以使用 git tag 给它打上标签。
git tag <name>
可以用命令git tag查看所有标签:
git tag
默认标签是打在最新提交的commit上的。有时候,如果忘了打标签,比如,现在已经是周五了,但应该在周一打的标签没有打,怎么办?
方法是找到历史提交的commit id,然后打上就可以了:
git log --pretty=oneline --abbrev-commit
比方说要对modify这次提交打标签,它对应的commit id是c44a541,敲入命令:
git tag v0.9 c44a541
注意,标签不是按时间顺序列出,而是按字母排序的。可以用git show tagname 查看标签信息:
git show v0.9
还可以创建带有说明的标签,用-a指定标签名,-m指定说明文字:
git tag -a v0.1 -m "version 0.1 released" 3628164
还可以通过-s用私钥签名一个标签:
git tag -s v0.2 -m "signed version 0.2 released" fec145a
如果标签打错了,也可以删除:
git tag -d v0.1
因为创建的标签都只存储在本地,不会自动推送到远程。所以,打错的标签可以在本地安全删除。
如果要推送某个标签到远程,使用命令git push origin tagname:
git push origin v1.0
或者,一次性推送全部尚未推送到远程的本地标签:
git push origin --tags
如果标签已经推送到远程,要删除远程标签就麻烦一点,先从本地删除:
git tag -d v0.9
然后,从远程删除。删除命令也是push,但是格式如下:
git push origin :refs/tags/v0.9