Git 笔记
git 简介
本文介绍 git 的配置及使用
git 配置
配置文件位置
Git 相关的配置文件有三个:
- 系统级
用户目录中的 .gitconfig 文件1
~/.gitconfig
- 系统用户级
用户目录中的 .gitconfig 文件1
~/.gitconfig
- 仓库级
git 项目目录中的 .git/config 文件1
/项目目录/.git/config
对于同一配置项, 三个配置文件的优先级是 系统级 < 系统用户级 < 仓库级
全局设置
设置的是系统用户配置
1 | git config --global user.name "your_name" |
单个仓库设置
1 | git config user.name "your_name" |
查看 git 配置
查看当前配置, 在当前项目下面查看的配置是全局配置+当前项目的配置, 使用的时候会优先使用当前项目的配置
1 | git config --list |
添加 git ssh-key
生成 ssh-key
1 | # 推荐 ed25519 算法 |
远端仓库添加 ssh-key
把 id_ALGORITHM.pub 里面的内容复制添加到远端仓库, 如: github 个人账号中
配置多个 ssh-key
- /c/Users/YOU/.ssh/ 文件夹中新建文件 config
- 配置 config 文件
config 文件配置
1 | # github |
验证是否能连上 git server
用 github 示例:
1 | # 用以下命令即可 |
known_hosts 验证失败
当遇到 known_hosts 验证失败导致连接不上 git 仓库时会包含以下提示:
1 | Add correct host key in ${user_dir}/.ssh/known_hosts to get rid of this message. |
解决办法:
以连不上 github.com
示例,执行命令: ssh-keygen -R github.com
,然后根据提示操作即可
配置代理
配置 /c/Users/YOU/.ssh/config
config 文件配置
1 | # github |
git 使用
命令
tag
查看 tag
查看所有 tag
1 | # 完整显示 |
查看指定 tag
1 | # 查看 1.1.x 的 tag 列表 |
语法解释:
$2
对第二列进行操作, 即refs/tags/x.x.x
这一列~
匹配'//'
awk 模式匹配的开始结束标志1\.1\..
是正则匹配规则, 第一位是1
, 在正则中.
匹配任意单个字符, 所以这里\.
类似于转义, 纯粹标识字符 (.), 后面 的\.
也是标识字符。 所以这个正则的含义解读为: 匹配第二列, 然后对第二列进行正则匹配 字符(1.1.x), x 表示任意单个字符。{print ":" $2}
输出字符串 :+第二列, 组成字符串 类似于 (:refs/tags/1.1.0)
拉取远程 tag
1 | # 从远程拉取所有信息 |
删除 tag
- 单个删除 tag
1 | # 删除本地 tag |
- 批量删除指定 tag
1 | # 删除远程 1.1.x 的 tag 列表 |
语法解释:
- xargs git push origin 将前面的输出结果作为参数执行删除命令
- 批量所有 tag
1 | # 删除远程所有 tag 列表 |
- 删除所有本地 tag, 并从远端重新拉取
1 | # 执行下面两个命令 |