Git标签管理

Git 有 commit,为什么还要引入 tag?Git 的每次提交的 cimmit id 是一串很长的乱七八糟的数字和字母组合,根本不好找。所以,tag 就是一个让人容易记住的有意义的名字,它跟某个 commit 绑在一起。

创建标签

首先,切换到需要打标签的分支上:

$ git checkout master

然后,敲命令 git tag <name> 就可以打一个新标签:

$ git tag v1.0

可以用命令 git tag 查看所有标签:

$ git tag

默认标签是打在最新提交的 commit 上的。有时候,需要针对某个 comit id 打标签:

$ git tag v0.9 6224937

查看标签信息:

$ git show v0.9

操作标签

删除标签:

$ 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

自定义配置

  • 让Git显示颜色
$ git config --global color.ui true
  • 忽略特殊文件

    • 在Git工作区的根目录下创建一个特殊的.gitignore文件,然后把要忽略的文件名填进去,Git就会自动忽略这些文件。

    • .gitignore也提交到Git

    • 被忽略的文件也可以强制提交

$ git add -f App.class
  • 或者你发现,可能是.gitignore写得有问题,需要找出来到底哪个规则写错了,可以用git check-ignore命令检查:
$ git check-ignore -v App.class
  • 配置别名
$ git config --global alias.st status $ git config --global alias.co checkout $ git config --global alias.ci commit $ git config --global alias.br branch $ git config --global alias.lg "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit"