标签
我们每次提交git的时候,版本号都是一大串字符串,如果要直接告诉其他人某个版本会非常的麻烦,而标签就是给每一个版本号一个独特的名称便于记忆与交流。
创建标签
先切换到要打标签的分支,然后输入git tag <name>
就可以在当前分支的最新提交版本上打标签:
可以用git tag
查看当前的所有标签:
如果说我们想指定版本号来打标签,我们需要先找到对应的版本号:
1
2
3
4
5
6
7
8
9
|
$ git log --pretty=oneline --abbrev-commit
e5b864b (HEAD -> master, tag: v1.0) docs: fix a formatting error
4f57e98 docs: add git remote connect and easy teamwork
35084ca docs: add vscode some tips about vscode
f138374 (origin/master) docs: fix the merge conflict
099e151 docs: add git_learn_6 about git branch
34ebd61 docs: add Git_learn_6 the part of basic
423c593 docs: add Git_learn_5
5460b8c docs: update git
|
然后在之前的命令上叫上对应的版本号即可:
1
2
3
4
|
$ git tag v0.9 4f57e98
$ git tag
v0.9
v1.0
|
我们还可以用git show <tagname>
来查看对应标签的信息:
1
2
3
4
5
6
|
$ git show v0.9
Author: MJYEE <mjyeecloud@outlook.com>
Date: Thu Mar 13 14:01:12 2025 +0800
docs: add git remote connect and easy teamwork
...
|
我们在创建标签的时候,还可以创建标签信息,这样我们在git show
的时候也会看到对应信息:
1
2
|
# 用-a指定标签名,-m指定说明文字:
git tag -a v666 -m "comming 666" b33a6aa
|
标签总是和某个commit挂钩。如果这个commit版本同时出现在master和dev分支,那这两个分支上都可以看到这个标签
推送标签
我们本地创建的标签并不会直接与远程标签连接,需要我们自己推送:
1
2
3
4
5
6
7
8
9
10
|
$ git push origin v1.0
Enumerating objects: 29, done.
Counting objects: 100% (29/29), done.
Delta compression using up to 16 threads
Compressing objects: 100% (22/22), done.
Writing objects: 100% (25/25), 183.89 KiB | 707.00 KiB/s, done.
Total 25 (delta 9), reused 0 (delta 0)
remote: Resolving deltas: 100% (9/9), completed with 3 local objects.
To github.com:MJYEEE/blog.git
* [new tag] v1.0 -> v1.0
|
一次推送所有标签 git push origin
删除标签
当我们不需要某个标签或者打错了标签,我们也可以进行删除:
1
2
|
$ git tag -d v0.9
# Deleted tag 'v0.9' (was 4f57e98)
|
删除远程标签:
1
2
3
|
$ git push origin :refs/tags/v1.0
To github.com:MJYEEE/blog.git
- [deleted] v1.0
|
这个:
表示将冒号前面的空值推送到远程标签名,从而高效地删除它,
忽略特殊文件
我们在进行git提交时,总会有一些文件我们不需要提交或者不方便提交,比如说数据库账号密码配置文件,编译代码自动生成的文件,Hugo生成静态博客的public文件夹,这些东西我们不想在git提交时上传,虽然我们可以不添加它们到暂存区去提交,但是status里面看着非常难受,而且不小心提交并推送了还非常麻烦,所有就有了.gitignore
文件。
我们在仓库的根目录上创建一个.gitignore
文件,然后在里面填入像忽略的文件名:
1
2
3
4
5
6
7
8
9
10
11
|
# 排除指定的文件夹
public/
# 排除指定文件
deploy.sh
# 排除所有.开头的隐藏文件:
.*
# 排除所有.xx后缀的文件
*.xx
# 不排除某文件加上!号 比如.gitignore:
!.gitignore
|
编写完.gitignore
,我们就可以尝试一下修改里面文件的内容,然后看一下status,就会没有发现提示。
如果你想添加一个文件到Git,但发现添加不了,就有可能使这个文件被.gitignore
忽略了,我们可以从.gitignore
删除它,也可以 git add -f xxxx
强制添加。