【Git】原理及使用(五) (配置git和标签管理)

配置Git

忽略特殊文件

在日常开发中,有些文件不想或者不应该提交到远端,比如保存了数据库密码的配置文件,可以让Git识别并忽略它们,只需在Git工作区根目录创建特殊的.gitignore文件,将需要忽略的文件名填入,Git就会自动跳过这些文件。

无需手动从零编写.gitignore文件,创建Gitee仓库时可直接生成该文件,只需在创建页面主动勾选对应选项即可:

如果当时没有勾选该选项,直接在工作区手动创建.gitignore文件。无论采用哪种方式,最终都能得到完整的.gitignore文件,例如想要忽略所有以.so和.ini结尾的文件,.gitignore的内容如下:

在.gitignore文件中也可以指定某个确定的文件。

之后把.gitignore也提交到远端:

接着我们就来验证一下.gitignore文件的能力,在工作区新增两个文件a.ini b.so:

检验.gitignore的标准就是git status命令输出working tree clean。我们发现Git并没有提示工作区存在新增文件,说明.gitignore已经生效!

但有时需要提交被.gitignore忽略的文件,直接添加会失败,此时可以使用-f参数强制添加:

复制代码
git add -f [filename]

或者你发现.gitignore配置存在错误,想要定位出错的规则,例如a.so文件本应被提交却被忽略,可使用git check-ignore命令进行检查:

Git会提示是.gitignore第2行的规则忽略了该文件,据此就能找到并修改错误规则。

还有些时候,我们编写规则排除部分文件时,例如:

复制代码
//排除所有.开头的隐藏文件
.*

但是我们发现 .* 这个规则把 .gitignore 也排除了。虽然可以用 git add -f 强制添加进去,但有强迫症的朋友还是希望不要破坏 .gitignore 规则,这个时候,可以添加一条例外规则:

复制代码
//排除所有.开头的隐藏文件
.*

//不排除.gitignore
!.gitignore

把指定文件排除在.gitignore规则外的写法就是 ! +文件名 ,所以,只需把例外文件添加进去即可。

给命令配置别名

在我们使用Git期间,有些命令敲的时候着实让人头疼(太长了),幸运的是,git支持对命令进行简化。例如将 git status 简化为 git st ,对应的命令为:

复制代码
git config --global alias.st status

--global 参数是全局参数,配置后该别名在这台电脑所有Git仓库中都生效;如果不加该参数,则仅对当前仓库有效。

好了,现在敲 git st 看看效果:

再来配置一个 git last,让其显示最后一次提交信息:

复制代码
git config --global alias.last 'log -1'

这样,用 git last 就能显示最近一次的提交:

标签管理

理解标签

标签 tag,可以简单理解为是对某次 commit 的标识,相当于给提交记录起了别名。例如项目发布版本时,可以给最终一次 commit 打上 v1.0 这类标签,用来标记版本里程碑。

它的作用是:commit id 冗长难记,而 tag 可设置简洁有意义的名称,需要回退至重要版本时,直接使用标签就能快速定位对应提交。

创建标签

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

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

可用git tag查看所有标签。

默认标签会打在最新提交的commit上。如果需要在指定commit上打标签,先找到对应历史提交的commit id,再执行打标签命令即可,示例如下:

注意,标签不是按时间顺序列出,而是按字母排序的。

可以用 git show tagname 查看标签信息。

Git还可以创建带有说明的标签,用-a指定标签名,-m指定说明文字,格式为:

复制代码
git tag -a [标签名] -m "xxx" [commit_id]

另外,打完标签后可以使用tree .git命令查看一下你的本地库有什么变化。

操作标签

若标签打错,可以删除:

因为创建的标签都只存储在本地,不会自动推送到远程。所以,打错的标签可以在本地安全删除。

如果要推送某个标签到远程,使用命令 :

此时,查看gitee,看到标签已被更新:

若本地有很多标签,也可以一次性全部推送到远端:

复制代码
git push origin --tags

若标签已经推送到远端,要删除远端标签就麻烦一些,先从本地删除:

然后再从远端删除:

在gitee上页删除成功: