解锁初次运行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 ,感谢您的关注~

相关推荐
辻戋1 小时前
从零实现React Scheduler调度器
前端·react.js·前端框架
徐同保1 小时前
使用yarn@4.6.0装包,项目是react+vite搭建的,项目无法启动,报错:
前端·react.js·前端框架
Qrun2 小时前
Windows11安装nvm管理node多版本
前端·vscode·react.js·ajax·npm·html5
中国lanwp2 小时前
全局 npm config 与多环境配置
前端·npm·node.js
JELEE.3 小时前
Django登录注册完整代码(图片、邮箱验证、加密)
前端·javascript·后端·python·django·bootstrap·jquery
TeleostNaCl5 小时前
解决 Chrome 无法访问网页但无痕模式下可以访问该网页 的问题
前端·网络·chrome·windows·经验分享
前端大卫6 小时前
为什么 React 中的 key 不能用索引?
前端
你的人类朋友6 小时前
【Node】手动归还主线程控制权:解决 Node.js 阻塞的一个思路
前端·后端·node.js
小李小李不讲道理8 小时前
「Ant Design 组件库探索」五:Tabs组件
前端·react.js·ant design
毕设十刻8 小时前
基于Vue的学分预警系统98k51(程序 + 源码 + 数据库 + 调试部署 + 开发环境配置),配套论文文档字数达万字以上,文末可获取,系统界面展示置于文末
前端·数据库·vue.js