扫码阅读
手机扫码阅读
怎么分别给公司和个人项目设置 Git User?
90 2024-02-23
从第一天使用 Git 开始,每个人都逃不过这个配置:
git config --global user.name Name
git config --global user.email Email
直接给 Git 设置了一个全局用户,或者只有一个项目的时候去掉了--global
,只在此项目目录下执行设置用户的命令就完事了。
那么问题来了,当电脑中存在多个公司项目和个人项目的时候,使用全局默认的配置,可能一不小心就被钉在了公司项目 Git 历史的耻辱柱上:想象一下,有后人看到这段代码以后,真辣鸡,看看是谁写的,发现是公司邮箱,可能还不知道你,如果你用的 QQ 邮箱...
全局用户在个人项目和公司项目共存的电脑上并不能友好的处理混用的问题,依然需要在每个项目中单独设置。
怎么解决这个问题?
使用 includeIf
includeIf
是 Git 配置系统中的一个功能,它允许你在满足某些条件时自动包含一组配置设置。这个功能特别适合在单个机器上处理不同的工作/项目环境。
使用的前提是需要对文件夹的设计有一个简单的规划,举个栗子:
我的方式是在用户根目录 ~
下创建两个目录。
GitHub 此目录下只放个人项目和开源项目 workspace 此目录下存放公司项目
在根目录下再创建一个gitconfig
目录,用于存储一些配置文件,同时也可以增加版本管理,便于迁移。
mkdir ~/gitconfig && cd $_
进入目录并创建下列文件
.gitconfig_company
[user]
name = lufei
email = lufei@example.com
.gitconfig_individual
[user]
name = sy-records
email = 52o@qq52o.cn
.gitignore_global
.idea
.vscode
.env
vendor/
composer.lock
test.php
node_modules/
.DS_Store
.gitconfig
[user]
name = sy-records
email = 52o@qq52o.cn
[core]
excludesfile = ~/gitconfig/.gitignore_global
[includeIf "gitdir:~/GitHub/"]
path = ~/gitconfig/.gitconfig_individual
[includeIf "gitdir:~/workspace/"]
path = ~/gitconfig/.gitconfig_company
解释一下这个文件的内容,从下往上看:
workspace
目录下的项目使用~/gitconfig/.gitconfig_company
文件中的公司相关的配置;GitHub
目录下的项目使用~/gitconfig/.gitconfig_individual
文件中的个人相关的配置;全局的忽略文件放在 ~/gitconfig/.gitignore_global
文件中,这样就不用每个项目都创建.gitignore
;定义默认的全局用户。
这样只需要把项目放对目录,就再也不会混乱了,即便没有放到 GitHub
和 workspace
目录中,也有默认的全局用户兜底,不至于出现奇奇怪怪的用户的提交。
最后一步
还没完,创建完成后需要给 Git 的全局配置文件 ~/.gitconfig
中只需要加上下面这一行:
[include]
path = ~/gitconfig/.gitconfig
原文链接:
http://mp.weixin.qq.com/s?__biz=MzAwOTgzNjY4MA==&mid=2247484518&idx=1&sn=a5866d4376a078e061b8531995f290e3&chksm=9b58c581ac2f4c97d335c9db01b36776bc27e1ecb0a79be7d82fe949c5a057295a46abc9ea85#rd
鲁飞的其他文章
PHP8正式版发布,带来了注解和JIT
PHP8 正式版已经发布,来看看都有哪些新特性
MacOS 等机器配置 Docker 启用 Remote API
Docker 不仅可以通过本地命令行docker命令进行调用,还可以通过开启远程控制 API,使用 HTTP
Nginx目录浏览并进行美化
Nginx 作为一个高性能的 HTTP 和反向代理 web 服务器,默认不允许列出站点的整个目录,如果需要开启,可以通过配置打开此功能。
怎么使用默认的 PHP 执行 phar 包?
最近在开发一个安装程序的时候,打包为了 phar 包,遇到了一个问题就是打包后的 phar 包不能省略 php 去运行。
GitHub Actions 真香系列之文档自动简繁体转换
GitHub Actions 是 GitHub 推出的 CI\x5cCD 服务,正式版推出后也没有尝试过,最近体验了一下。
加入社区微信群
与行业大咖零距离交流学习
软件研发质量管理体系建设
白皮书上线