标签与配置

本文共--字 阅读约--分钟 | 浏览: -- Last Updated: 2021-04-15

标签

标签的作用:相当于为某一个的commit做一个“标记”,代表截止这个commit的代码,已经是一个“里程牌”。比如是发布版本的时候打一个标签为V1.0,之后很久版本发了很多代,如果想回到V1.0的版本,则只需要查看这个标签即可,不用去看commit_id那些难记的值。

创建标签

Git的标签虽然是版本库的快照,但其实它就是指向某个commit的指针。

git tag v1.0 # 默认标签是打在最新提交的commit上的。
git tag v0.9 commit_id # 将标签打在指定commit_id上

# 创建有说明的标签 -a 指定标签名 -m 指定标签的说明文字 后面在接commit_id
git tag -a v1.0 -m "version 1.0 released" 1094adb

git tag # 查看所有便签
git show v0.9 # 查看某个标签的具体信息

操作标签

创建的标签只会存储在本地,并不会自动推送到远程,所以可以在本地安全删除:

git tag -d v1.0 # 删除标签v1.0

如果要推送某个标签到远程,或者,一次性推送全部尚未推送到远程的本地标签:

git push origin v1.0

git push origin --tags # 推送所有未推送的标签到远程

删除远程标签:

git tag -d v1.0 # 先删除本地的
git push origin :refs/tags/v1.0 # 删除远程的

自定义GIT

除了user.name和user.email,Git还有很多可配置项。

比如,让Git显示颜色,会让命令输出看起来更醒目:

git config --global color.ui true

配置全局操作Git不再输入账号密码

git config --global credential.helper store

配置忽略文件

在Git工作区的根目录下创建一个特殊的.gitignore文件,然后把要忽略的文件名填进去,Git就会自动忽略这些文件。

忽略文件的原则是:

  • 忽略操作系统自动生成的文件,比如缩略图等;

  • 忽略编译生成的中间文件、可执行文件等,也就是如果一个文件是通过另一个文件自动生成的,那自动生成的文件就没必要放进版本库,比如Java编译产生的.class文件;

  • 忽略你自己的带有敏感信息的配置文件,比如存放口令的配置文件

当你配置了忽略文件时,如果你有确实想添加的但是已经命中了忽略规则的个别文件时,可以使用-f参数强制添加到Git:

git add -f App.class

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

git check-ignore -v App.class
.gitignore:3:*.class	App.class # .gitignore的第3行规则忽略了该文件

配置针对于忽略文件夹中指定哪些文件不被忽略,加入到版本管理中,即取消忽略,使用 !

!node_modules/vue-swipe

对某个文件取消跟踪,相当于删除

git rm --cached readme1.txt # 删除跟踪,并保留在本地
git rm --f readme1.txt # 删除跟踪,并且删除本地文件

配置文件

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

每个仓库的Git配置文件都放在.git/config文件中。

# 可以在配置文件中直接配置别名 与上节操作效果一致 
# 同时删除别名,可以直接删除配置文件中的对应行即可
[alias]
  co = checkout
  ci = commit
  br = branch
  st = status

而当前用户的Git配置文件放在用户主目录下的一个隐藏文件.gitconfig中,这里面配置的是全局配置。

搭建Git服务器

既不想公开源代码,又舍不得给GitHub交保护费,那就只能自己搭建一台Git服务器作为私有仓库使用。

搭建Git服务器需要准备一台运行Linux的机器,强烈推荐用Ubuntu或Debian,这样,通过几条简单的apt命令就可以完成安装。

需要sudo权限的用户账号

第一步:安装git

sudo apt-get install git

第二步,创建一个git用户,用来运行git服务:

sudo adduser git

第三步,创建证书登录:

收集所有需要登录的用户的公钥,就是他们自己的id_rsa.pub文件,把所有公钥导入到/home/git/.ssh/authorized_keys文件里,一行一个。

第四步,初始化Git仓库:

先选定一个目录作为Git仓库,假定是/srv/sample.git,在/srv目录下输入命令:

sudo git init --bare sample.git

然后,把owner改为git

sudo chown -R git:git sample.git

第五步,禁用shell登录:

出于安全考虑,第二步创建的git用户不允许登录shell,这可以通过编辑/etc/passwd文件完成。找到类似下面的一行:

git:x:1001:1001:,,,:/home/git:/bin/bash
# 改为
git:x:1001:1001:,,,:/home/git:/usr/bin/git-shell

这样,git用户可以正常通过ssh使用git,但无法登录shell,因为我们为git用户指定的git-shell每次一登录就自动退出。

第六步,克隆远程仓库:通过git clone命令克隆远程仓库,在各自的电脑上运行:

git clone git@server:/srv/sample.git