首页 > 其他分享 >个性化定义多个 Git 托管平台配置

个性化定义多个 Git 托管平台配置

时间:2024-04-02 20:33:19浏览次数:28  
标签:Git code name 托管 gitconfig gitlab includeIf 个性化

一、背景说明

本人使用了多个 Git 托管平台,包括 Github、Gitlab 和 Gitee。为了避免提交信息(主要是用户名和邮箱地址)错乱,我希望在向不同的托管平台提交内容时,能够自动设置相应的用户名和邮箱地址。

二、解决方案

1. 常规做法

为每个 repo 单独设置用户名和邮箱地址。

操作步骤如下:在 repo 的根目录执行 git config user.name yourname && git config user.email [email protected]

但这种方法的缺点是操作繁琐,且极易遗忘。

2. 更好做法

使用 Git includeIf 给多个托管平台定义不同的配置。

Git includeIf 是 Git 2.13 版本引入的一个非常有用的特性,它允许你根据当前工作目录的位置来包含不同的 Git 配置。这个特性特别适合在不同的工作环境中使用不同的 Git 配置。例如,你可能在工作时使用你的工作电子邮件地址进行提交,而在家里则使用你的个人电子邮件地址。通过使用 git includeIf,你可以自动地根据当前的工作目录来切换这些配置。

三、includeIf 方案

1. 配置

(1)给每个托管平台指定保存的目录,如 Github、Gitlab 和 Gitee 平台的代码,我分别保存在D:\code\person\github\D:\code\work\gitlab\D:\code\person\gitee\ 目录下。

(2)在 .gitconfig 配置文件中通过 includeIf 指定各托管平台指定目录对应的个性化配置。配置如下:

.gitconfig,该文件默认保存在用户根目录下,配置如下:

[includeIf "gitdir:D:/code/work/gitlab/"]
    path = ~/.gitconfig-gitlab

[includeIf "gitdir:D:/code/person/gitee/"]
    path = ~/.gitconfig-gitee

[includeIf "gitdir:D:/code/person/github/"]
    path = ~/.gitconfig-github

~/.gitconfig-gitlab,该文件与 .gitconfig 同目录,配置如下:

[user]
    name = gitlab-name
    email = [email protected]

~/.gitconfig-gitee,该文件与 .gitconfig 同目录,配置如下:

[user]
    name = gitee-name
    email = [email protected]

~/.gitconfig-github,该文件与 .gitconfig 同目录,配置如下:

[user]
    name = github-name
    email = [email protected]

说明: Windows 系统中,.gitconfig 配置中需将 gitdir 路径分隔符由反斜杠\ 转为 正斜杆 /,如:D:\code\person\github\ 转为 D:/code/work/gitlab/

2. 验证

在各托管平台指定目录下任意 repo 执行以下脚本验证:

git config user.name

git config user.email

九、参考资料

Organizing multiple Git identities

docs git-config

标签:Git,code,name,托管,gitconfig,gitlab,includeIf,个性化
From: https://www.cnblogs.com/zengzuo613/p/18111440

相关文章

  • Git相关知识
    一、偏理论性知识1.什么是git?他的主要特点是什么?Git是一种分布式版本控制系统,用于追踪和管理文件的变化。①它具有分布式的特点,使每个开发者都有完整的代码仓库副本,可以在本地进行工作,无需依赖中央服务器。②并且Git通过对文件和内容进行快速哈西计算来实现高效......
  • Git——版本回退
    关键指令回退到相应版本:指令:gitreset--hard版本号强制推送到远程仓库指令: gitpush-forigin分支名这里需要使用gitpush-f命令强制推送到远程仓库,因为普通的gitpush会因为版本冲突而报错看到这行就代表远程仓库成功回退了版本终端......
  • Git常用命令大全:让你轻松驾驭版本控制
    前言Git是一款强大的分布式版本控制系统,广泛应用于软件开发中。无论是个人开发者还是团队协作,掌握Git的常用命令是至关重要的。本文将介绍Git的常用命令,帮助您更好地管理代码版本。初始化一个新的仓库gitinit这个命令将在当前目录下创建一个新的Git仓库。克隆一个仓库......
  • 使用git(ee的一个小总结
    我先把后端项目推进了gitee,后面为了方便又想把前端也放在同一个项目里,结果出问题了:一开始是因为前端项目内包含了.git的文件(这个玩意还是隐藏文件,就是你在idea里其实是看不到他的),导致只能推进去一个点不开的文件夹。经历过看不懂英文上头乱点把项目删干净的经历,我提......
  • 基础知识-K8s(docker jenkins git)部分
    (0402,更新到Git)资料来源roadmap.sh一小时学会Git|GeekHourDocker部分Docker(容器)到底是什么我的例子预制菜的做法。为了能让使用者都能同一种食材和同一种烹饪方法,我特意在中央厨房,将一种菜式里的食材处理到半熟或者全熟的状态,然后用真空的包装包好,之后在仓库里存放。使......
  • linux 安装git服务
    一、安装git服务在Linux上安装git目前主要有两种方式,一种是直接用yum命令进行安装,这种安装方便简单,但是版本无法控制,就是yum源码中的版本可能比较旧。另一种事自己下载源码进行安装。第一种方式比较简单:通过yum命令安装git:yuminstallgit-y查看是否安装成功:rpm-qa......
  • Git命令使用
    命令行1.初始化仓库命令gitinit2.注册用户--global代表全局--system代表系统层gitconfig--user.name"Saxon"(添加用户名)[email protected](添加邮箱)gitconfig--credential.helperstore(记住注册内容)3.查看状态gitstatus4.添加文件g......
  • 一步到位!快速精通Git工作流及实战技巧详解
    Git是一个分布式版本控制系统。1、git的应用场景1.备份小明负责的模块就要完成了,就在即将release之前的一瞬间,电脑突然蓝屏。硬盘光荣牺牲!几个月来的努力付之东流。场景二:代码还原这个项目中需要一个很复杂的功能,老王摸索了一个星期终于有眉目了,可是这被改得面目全非的......
  • 使用Sparse Checkout 排除跟踪Git仓库中指定的目录或文件
    应用场景在一个大工程里包含由不同部门开发的模块时,项目的Git仓库肯定很大,造成每次Git操作相对比较耗时。因为开发人员一般只关心他们部门的模块的代码,所以完全可以排除一些他完全不需要用到的目录。这时候就可以使用Git的SparseCheckout。操作步骤1、若未拉取仓库代码时mk......
  • 为 AI 而生的编程语言「GitHub 热点速览」
    Mojo是一种面向AI开发者的新型编程语言。它致力于将Python的简洁语法和C语言的高性能相结合,以填补研究和生产应用之间的差距。Mojo自去年5月发布后,终于又有动作了。最近,Mojo的标准库核心模块已在GitHub上开源,采用Apache2开源协议,开源后迅速受到广泛关注,登上了Gi......