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 <v_renxiaohui01@baidu.com>
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 <v_renxiaohui01@baidu.com>
Date:   Mon Jul 22 17:17:21 2019 +0800

0.8的描述

commit 2addbfaec7da6ed7d62eac3eaf5079a432aa1238 (tag: v0.8)
Author: renxiaohui <v_renxiaohui01@baidu.com>
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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值