Git多环境配置

简介: 你是不是曾遇到过这样一个问题,公司仓库往往为了满足公司git规范,往往需要全局配置用户名和邮箱........

前言

image.png
你是不是曾遇到过这样一个问题,公司仓库往往为了满足公司git规范,往往需要全局配置用户名和邮箱,但是我们平时也活跃在男性交友论坛(github)上,这个时候我们个人仓库的用户名和邮箱配置是有区别的,为了能够很好地区分工程上传到不同的远程仓库,我们需要分别处理,保证在不同的工程使用不同的配置信息。

Git多层级配置

多层级配置在git支持中,分别是system(系统级)、global(用户级)、local(项目级)和worktree(工作区级)

  • 配置优先级: worktree > local > global > system

配置解释

  • system

/etc/gitconfig: 系统级配置文件,对系统中所有用户都适用的配置。使用 git config --system读写的就是这个文件。

  • global

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

  • local

$RepoPath/.git/config: 项目级配置文件,当前项目的 git仓库目录中的配置文件,也就是工作目录中的 .git/config 文件,这里的配置仅仅针对当前项目有效。使用 git config --local或 省略 local参数,读写的就是这个文件。

  • worktree: 工作区级配置,此配置仅仅针对当前工作区有效。使用 git config --worktree进行配置。

Git动态配置

假设有A,B,C分支,每个分支或许提交使用的用户信息与工作区或者当前用户下的不一样,如果你遇到这样的项目,可以单独进行配置,但是如果有很多这样的项目再单独配置的话就很麻烦,也容易遗漏掉某些配置,我们可以在用户级、系统级配置文件中,通过 includeIf 配置项来有条件地加载指定配置文件,他可以根据当前git项目的目录来设置,也可以根据当前git项目的当前分支来设置,这样就能实现针对不同的仓库、分支来加载不同的配置。

指定目录

根据git项目的目录来加载对应的配置文件

[includeIf "gitdir:~/**/指定的目录/**"]
    path = 对应的配置文件的路径

指定分支

如果我们位于当前分支名称匹配

[includeIf "onbranch:分支名字"]
    path = 对应的配置文件的路径

自定义配置写入

在配置文件对应的配置文件的路径中编写你需要设置,还可以通过带-f(等同于--file)选项的git config命令直接将配置项写入指定配置文件中,如下

git config -f 对应的配置文件的路径 user.email siguoduan@gmail.com

对于个人用户来说,可以把通用的设置到global层,不通用的设置到具体的某个仓库或者仓库的工作目录中。如果主机会有多个用户用不同的用户名登录使用,那可以把通用的放到system层的配置中。



目录
相关文章
|
Shell Linux 开发工具
Git基础教学1——安装、环境配置与基本设置
点击进入Git官网选择自己电脑的操作系统安装 之后进行傻瓜式安装(如果有需要更换下载路劲的自行更换),一直点下去即可。 安装成功后在根目录下运行git-bash.exe或者运行根目录下bin文件夹中的bash.exe或者鼠标右击选择Git Bash Here就可以开始使用命令。
|
Shell 网络安全 开发工具
【GitHub】从0开始搭建GitHub环境系列之一——Git基础环境配置(用户名、邮件、密钥等)
【GitHub】从0开始搭建GitHub环境系列之一——Git基础环境配置(用户名、邮件、密钥等)
163 0
|
存储 Shell 开发工具
Git环境配置和初始化
Git环境配置和初始化
208 1
|
网络安全 开发工具 git
git基本环境配置
yum源中已有的git版太低,所以选择源码编译,也比较简单,由于git上许多项目需要python环境不同,因此保留系统自带的python2.
892 0
|
开发工具 git
git环境配置
     重要提示: 生成ssh的命令必须要用git batch gui生成,还有git setting的Network的sshclient的路径:C:\Program Files (x86)\Git\bin\ssh.exe 
803 0
|
4天前
|
缓存 数据可视化 网络安全
Git命令大全
Git命令大全
62 1
|
4天前
|
开发工具 git
Git教程:深入了解删除分支的命令
【4月更文挑战第3天】
67 0
Git教程:深入了解删除分支的命令
|
4天前
|
存储 Shell Linux
【Shell 命令集合 文件管理】Linux git命令使用教程
【Shell 命令集合 文件管理】Linux git命令使用教程
37 0
|
4天前
|
开发工具 git
git常用命令整理
git常用命令整理
18 0

相关实验场景

更多