Git 自定义Git功能

标签管理

git 有commit id 为什么还要引入tag?
因为commit id 一大串数字不好记,不如给他起个外号比如 v1.0 ,这样下次再找他的时候就可以直接喊外号v1.0

创建标签

  • 首先切换到需要打标签的分支上
$ git branch
* dev
  master
000000073488:gittext v_renxiaohui01$ git checkout master
Switched to branch 'master'
  • 然后,敲命令git tag 就可以打一个新标签:
$ git tag v1.0
  • 可以用命令git tag查看所有标签:
$ git tag
v1.0

默认标签是打在最新提交的commit 上的,如果我想打在之前的commit上怎么办?

方法是找到之前commit id 然后打在上面就可以了

$ git log --pretty=oneline --abbrev-commit

5814fa7 (HEAD -> master, tag: v1.0) 合并后提交
f17ed1c matser 999
2addbfa feature1 888
5f5d4d6 在frature上777
ea6a8d4 master 修改 666
d8dd0ea 11
08652ba 在master提交555
ddfb352 dev提交666
33505cb 在dev提交
0117de3 第五次提交
3daba5e 第四次提交
28b95a0 第三次提交
0542214 第二次提交
cc7af9d 第一次提交

比如我们要在merge999这个打标签

$ git tag v0.9 f17ed1c

查看tag的具体信息

$ git show v0.9
commit f17ed1c86b238e531fa9003bc10f4227b17622d7 (tag: v0.9)
Author: renxiaohui <[email protected]>
Date:   Mon Jul 22 16:15:01 2019 +0800

    matser 999

可以看到v0.9确实打在了merge999上面

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

$ git tag -a v0.8 -m "0.8的描述" 2addbfa

$ git show v0.8
tag v0.8
Tagger: renxiaohui <[email protected]>
Date:   Mon Jul 22 17:17:21 2019 +0800

0.8的描述

commit 2addbfaec7da6ed7d62eac3eaf5079a432aa1238 (tag: v0.8)
Author: renxiaohui <[email protected]>
Date:   Mon Jul 22 16:13:56 2019 +0800

    feature1 888

操作标签

命令git push origin <tagname>可以推送一个本地标签;

命令git push origin --tags可以推送全部未推送过的本地标签;

命令git tag -d <tagname>可以删除一个本地标签;

命令git push origin :refs/tags/<tagname>可以删除一个远程标签。

忽略文件

有些时候,你必须把某些文件放到Git工作目录中,但又不能提交它们,比如保存了数据库密码的配置文件啦,等等,每次git status都会显示Untracked files …,有强迫症的童鞋心里肯定不爽。

好在Git考虑到了大家的感受,这个问题解决起来也很简单,在Git工作区的根目录下创建一个特殊的.gitignore文件,然后把要忽略的文件名填进去,Git就会自动忽略这些文件。

不需要从头写.gitignore文件,GitHub已经为我们准备了各种配置文件,只需要组合一下就可以使用了。所有配置文件可以直接在线浏览:https://github.com/github/gitignore

忽略文件的原则是:

忽略操作系统自动生成的文件,比如缩略图等;
忽略编译生成的中间文件、可执行文件等,也就是如果一个文件是通过另一个文件自动生成的,那自动生成的文件就没必要放进版本库,比如Java编译产生的.class文件;
忽略你自己的带有敏感信息的配置文件,比如存放口令的配置文件

对于每一级工作目录,创建一个.gitignore文件,向该文件中添加要忽略的文件或目录。但在创建并编辑这个文件之前,一定要保证要忽略的文件没有添加到git索引中。使用命令git rm –cached filename将要忽略的文件从索引中删除。
git rm -r –cached .

有些时候,你想添加一个文件到Git,但发现添加不了,原因是这个文件被.gitignore忽略了:

$ git add App.class
The following paths are ignored by one of your .gitignore files:
App.class
Use -f if you really want to add them.

如果你确实想添加该文件,可以用-f强制添加到Git:

$ git add -f App.class

或者你发现,可能是.gitignore写得有问题,需要找出来到底哪个规则写错了,可以用git check-ignore命令检查:

$ git check-ignore -v App.class
.gitignore:3:*.class	App.class

Git会告诉我们,.gitignore的第3行规则忽略了该文件,于是我们就可以知道应该修订哪个规则。

配置别名

有没有经常敲错命令?比如git status?status这个单词真心不好记。

如果敲git st就表示git status那就简单多了,当然这种偷懒的办法我们是极力赞成的。

我们只需要敲一行命令,告诉Git,以后st就表示status:

$ git config --global alias.st status

$ git config --global alias.loge "log --pretty=oneline --abbrev-commit"

配置Git的时候,加上–global是针对当前用户起作用的,如果不加,那只针对当前的仓库起作用。

参考:https://www.liaoxuefeng.com/wiki/896043488029600

发布了100 篇原创文章 · 获赞 5 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/qq_34760508/article/details/96874908