解锁初次运行Git前的关键配置步骤,打造高效版本控制环境

初次在系统中安装好Git,需要做几件事情来配置你的Git环境,确保你在日常开发中提高效率,节约时间。下面我就一一介绍下:

git config 工具介绍

git config 工具专门用来配置或读取相应的工作环境变量。而正是由这些环境变量,决定了 Git 在各个环节的具体工作方式和行为。这些变量可以存放在以下三个不同的地方:

  1. /etc/gitconfig 文件:包含系统上每一个用户及他们仓库的通用配置。若使用 git config 时带上 --system 选项,读写的就是这个文件。

  2. ~/.gitconfig 文件:用户目录下的配置文件只适用于该用户。若使用 git config 时带上 --global 选项,读写的就是这个文件。

  3. 当前仓库的 Git 目录中的配置文件(也就是工作目录中的 .git/config 文件):这里的配置仅仅针对当前仓库有效。若使用 git config 时带上 --local 选项,读写的就是这个文件。

每一个级别的配置都会覆盖上层的相同配置,所以 .git/config 里的配置会覆盖 /etc/gitconfig 中的同名变量。

你可以通过以下命令查看所有的配置以及它们所在的文件: 带上 --show-origin 可以显示配置所在文件目录

bash 复制代码
# 查看所有环境下的配置信息
$ git config --list --show-origin
bash 复制代码
# 查看系统配置信息
$ git config --list --system --show-origin

# 查看全局配置信息
$ git config --list --global --show-origin

# 查看局部(当前目录)别配置信息
$ git config --list --local --show-origin

用户信息配置

设置你的用户名和邮件地址。 这一点很重要,因为每一个 Git 提交都会使用这些信息,它们会写入到你的每一次提交中,不可更改:

bash 复制代码
# 全局配置(所有项目)
git config --global user.name <name>
git config --global user.email <email>

# 当前目录配置(当前项目) 
# 适用场景:如果要在某个特定的仓库中使用其他名字或者电邮,只要去掉 --global 选项重新配置即可。
git config user.name <name>
git config user.email <email>

示例:

git config --global user.name "xiaoshitou"
git config --global user.email "xiaoshitou@gmail.com"

git config user.name "dalaohu"
git config user.email "dalaohu@gmail.com"

检查配置信息

要检查已有的配置信息,可以使用 git config --list 命令:

bash 复制代码
λ git config --list
diff.astextplain.textconv=astextplain
filter.lfs.clean=git-lfs clean -- %f
filter.lfs.smudge=git-lfs smudge -- %f
filter.lfs.process=git-lfs filter-process
filter.lfs.required=true
http.sslbackend=openssl
core.autocrlf=true
core.fscache=true
core.symlinks=false
pull.rebase=false
credential.helper=manager
init.defaultbranch=master
user.name=lianglei
user.email=love2157dream@aliyun.com
credential.helper=store
core.quotepath=false
core.autocrlf=false
........................

# 看到重复的变量名,那就说明它们来自不同的配置文件(比如 /etc/gitconfig 和 ~/.gitconfig),不过最终 Git 实际采用的是最后一个。

#可以通过输入 git config <key>: 来检查 Git 的某一项配置
λ git config user.name
xiaohong

凭据存储

如果你使用的是 SSH 方式连接远端,并且设置了一个没有口令的密钥,这样就可以在不输入用户名和密码的情况下安全地传输数据。 然而,这对 HTTP 协议来说是不可能的 ------ 每一个连接都是需要用户名和密码的。 因此设置合适的模式有利于开发效率的提升。

在Git中有以下几种方式来存储凭据:

  • 默认所有都不缓存。 每一次连接都会询问你的用户名和密码。

  • cache 模式会将凭证存放在内存中一段时间。 密码永远不会被存储在磁盘中,并且在15分钟后从内存中清除。

  • store 模式会将凭证用明文的形式存放在磁盘中,并且永不过期。 这意味着除非你修改了你在 Git 服务器上的密码,否则你永远不需要再次输入你的凭证信息。 这种方式的缺点是你的密码是用明文的方式存放在你的 home 目录下。

  • osxkeychain 模式是macOS 中安装的 Git 一般默认都是该模式,它会将凭证缓存到你系统用户的钥匙串中。 这种方式将凭证存放在磁盘中,并且永不过期,但是是被加密的,这种加密方式与存放 HTTPS 凭证以及 Safari 的自动填写是相同的。

  • manager 模式是Windows 中安装的 Git 一般默认都是该模式,它会将凭证缓存在系统的凭据管理器中。这种方式将凭证存放在磁盘中,并且永不过期,同样也是加密的。

Git 中有三种级别systemgloballocal ,可以针对不同的级别设置不同的凭据存储方式。

查看不同级别的凭据模式

bash 复制代码
λ git config --system credential.helper
manager

λ git config --global credential.helper
store

λ git config --local credential.helper
store

修改指定级别的凭据模式

bash 复制代码
# 开发中强烈推荐使用这个
λ git config --global credential.helper store

# store 模式可以接受一个 --file <path> 参数,可以自定义存放密码的文件路径(默认是 ~/.git-credentials )。 

# cache 模式有 --timeout <seconds> 参数,可以设置后台进程的存活时间(默认是 "900",也就是 15 分钟)。 

# 下面是一个配置 "store" 模式自定义路径的例子:
λ git config --global credential.helper 'store --file ~/.my-credentials'

# 下面是一个配置 "cache" 模式自定义存活时间的例子:
λ git config credential.helper 'cache --timeout=3600'

写在最后

通过本篇的文章可以学习到安装git后如何配置相关环境,在开发中游刃有余,节约开发时间,喜欢的话帮忙点个赞 + 关注吧,将持续更新 git 相关的文章,还可以关注我的公众号 梁三石FE ,感谢您的关注~

相关推荐
Codebee14 分钟前
魔改 OneCode-RAD 实现 LLM 编程:打造自然语言驱动的低代码助手
前端·人工智能·前端框架
我是日安17 分钟前
从零到一打造 Vue3 响应式系统 Day 11 - Effect:Link 节点的复用实现
前端·vue.js
TeamDev23 分钟前
用一个 prompt 搭建带 React 界面的 Java 桌面应用
java·前端·后端
北辰alk31 分钟前
React 组件状态更新机制详解:从原理到实践
前端
Mintopia2 小时前
在 Next.js 项目中驯服代码仓库猛兽:Husky + Lint-staged 预提交钩子全攻略
前端·javascript·next.js
Mintopia2 小时前
AIGC API 接口的性能优化:并发控制与缓存策略
前端·javascript·aigc
IT_陈寒2 小时前
SpringBoot 3.2新特性实战:这5个隐藏技巧让你的启动速度提升50%
前端·人工智能·后端
星哥说事3 小时前
国产开源文档神器:5 分钟搭建 AI 驱动 Wiki 系统,重新定义知识库管理
前端
degree5203 小时前
前端单元测试入门:使用 Vitest + Vue 测试组件逻辑与交互
前端
3Katrina3 小时前
一文解决面试中的跨域问题
前端