1. 忽略特殊文件
在⽇常开发中,我们有些⽂件不想或者不应该提交到远端,⽐如保存了数据库密码的配置⽂件,那怎么让 Git 知道呢?在 Git ⼯作区的根⽬录下创建⼀个特殊的 .gitignore
⽂件,然后把要忽略的⽂件名填进去,Git 就会⾃动忽略这些⽂件了。不需要从头写 .gitignore
⽂件,gitee 在创建仓库时就可以为我们⽣成,不过需要我们主动勾选⼀下:
如果当时没有选择这个选择,在⼯作区创建⼀个也是可以的,即先创建⼀个 .gitignore ⽂件,之后在该文件中填写要忽略的文件。以该仓库使用C++代码为例,则 .gitignore ⽂件内容为:
# Prerequisites
*.d
# Compiled Object files
*.slo
*.lo
*.o
*.obj
# Precompiled Headers
*.gch
*.pch
# Compiled Dynamic libraries
*.so
*.dylib
*.dll
# Fortran module files
*.mod
*.smod
# Compiled Static libraries
*.lai
*.la
*.a
*.lib
# Executables
*.exe
*.out
*.app
之后就是把 .gitignore 文件经过 add,commit,push 这三个过程将其提交到远端就完成了。⽆论哪种⽅式,最终都可以得到⼀个完整的 .gitignore ⽂件。
接着我们就来验证⼀下.gitignore⽂件的能⼒,在⼯作区新增两个⽂件 a.d b.slo :
检验
.gitignore
的标准就是
git status
命令是不是说
working tree clean
。我们发现 Git 并没有提⽰在⼯作区中有⽂件新增,果然 .gitignore
⽣效了!
但有时候,你就是想添加⼀个⽂件到 Git,但由于这个⽂件被
.gitignore
忽略了,根本添加不了,那么可以⽤ -f
强制添加:
git add -f [filename]
2. 给命令配置别名
在我们使⽤ Git 期间,有些命令敲的时候着实让⼈头疼,幸运的是,git⽀持对命令进⾏简化!
举个例⼦,将
git status
简化为
git st
,对应的命令为:
git config --global alias.st status
--global
参数是全局参数,也就是这些命令在这台电脑的所有Git仓库下都有⽤。如果不加,那只
针对当前的仓库起作⽤。 之后敲 git st
看看效果:
3. 标签管理
3.1 理解标签
标签
tag
,可以简单的理解为是对某次
commit
的⼀个标识,相当于起了⼀个别名。例如,在项⽬
发布某个版本的时候,针对最后⼀次
commit
起⼀个
v1.0 这样的标签来标识⾥程碑的意义。
这有什么⽤呢?相较于难以记住的
commit id
,
tag
很好的解决这个问题,因为
tag
⼀定要给⼀个让⼈容易记住,且有意义的名字。当我们需要回退到某个重要版本时,直接使⽤标签就能很快定位
到。
3.2 创建标签
在Git中打标签⾮常简单,⾸先,切换到需要打标签的分⽀上:
然后,敲命令
git tag [name]
就可以打⼀个新标签,并且可以⽤命令 git tag 查看所有标签:
默认标签是打在最新提交的
commit
上的。那如何在指定的commit上打标签呢?⽅法是找到历史提交的commit id,然后打上就可以了,⽰例如下:
注意,标签不是按时间顺序列出,⽽是按字⺟排序的。
可以⽤
git show [tagname]
查看标签信息。
Git 还提供可以创建带有说明的标签,⽤ -a 指定标签名,-m 指定说明⽂字,格式为
git tag -a [name] -m "XXX" [commit_id]
打完标签之后,使⽤
tree .git
命令查看⼀下本地库有什么变化
3.3 操作标签
如果标签打错了,也可以删除:
因为创建的标签都只存储在本地,不会⾃动推送到远程。所以,打错的标签可以在本地安全删除。如果要推送某个标签到远程,使⽤命令 git push origin <tagname>
此时,查看远端码云,看到了标签也已经被更新
当然,如果你本地有很多标签,也可以使用
git push origin --tags
⼀次性的全部推送到远端
如果标签已经推送到远程,要删除远程标签就⿇烦⼀点,先从本地删除
然后,从远程删除。删除命令也是push,但是格式如下
在码云上查看确实删除成功: