惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

J
Java Code Geeks
Last Week in AI
Last Week in AI
T
Tailwind CSS Blog
WordPress大学
WordPress大学
B
Blog RSS Feed
T
The Blog of Author Tim Ferriss
F
Fortinet All Blogs
aimingoo的专栏
aimingoo的专栏
MongoDB | Blog
MongoDB | Blog
博客园 - Franky
C
Check Point Blog
P
Proofpoint News Feed
H
Help Net Security
月光博客
月光博客
博客园_首页
Stack Overflow Blog
Stack Overflow Blog
博客园 - 三生石上(FineUI控件)
Martin Fowler
Martin Fowler
Recent Announcements
Recent Announcements
人人都是产品经理
人人都是产品经理
U
Unit 42
美团技术团队
I
InfoQ
A
About on SuperTechFans

胡方运的博客

macOS App 开发 iCloud 不同步问题解决 机票还能这么买!随心飞低价旅行攻略 提前避坑:父母患病和医保问题 我和 Apple 开发的缘分 我的手机流量和宽带套餐性价比方案 iMessage 在国内好用吗? 为什么要写博客 macOS 升级 beta 系统后,如何打开原来版本的 XCode Xcode 安装依赖超时问题解决办法 短信转发-多设备多平台 Follow RSS 阅读 App 记录一次服务器重启应用恢复过程 macOS 重装踩坑记 我的 2021 我的 2020 年终总结 如何给网站添加免费的 https 证书 写给自己的JavaScript系列之一步步写个 JavaScript 解释器 JavaScript 文件的异步加载 async 和 defer 如何修改 git 已提交的用户名和邮箱
如何管理多个 git 账号
感谢您的阅读。 🙏 关于转载请看这里 · 2019-10-02 · via 胡方运的博客

如果你有多个 git 账户,有没有遇到过提交代码的用户信息混乱的情况? 如果一劳永逸的解决这个问题那?

分目录配置 git 用户信息

git 可以设置全局的用户信息,然后可以再单独为每个仓库设置用户信息。如果忘记了给项目重置用户信息,可能就会发生上面的问题 — 提交时的邮箱和用户名错了。😓

如果你喜欢用不同的目录区分个人和公司的项目,可以使用下面的方法配置自己的 git 用户信息。😀

比如,你把公司的项目都放在了 Company 目录下,个人的项目都放在了 Personal 目录下下面。

那你可以这么做:

Company 下新建一个 .gitconfig_include 文件,配置你想在该目录下给所有 git 仓库设置的用户信息。

[user]
name = 用户名
email = 邮箱

然后在 ~/.gitconfig 内添加

[includeIf "gitdir:~/Company/"]
path = ~/Company/.gitconfig_include

⚠️ 复制提醒。Company 要替换成你自己的目录

这样,之后 Company 目录下的 git 仓库都会使用对应的 git 用户信息。💪

这是 git 的一个用法,感兴趣的同学可以看这里 conditional includes

如何在一台电脑上配置多个 ssh 密钥

上面解决的问题是只有一个 ssh 密钥,但是对应公司和个人不同的 git 账号信息。

还有一种情况是,一台电脑上有多个人的 ssh 密钥,比如我和小秋都是程序员,有时候一台电脑会同时配置我们俩的 ssh 密钥,分别对应不同的 git 账号。

除了上面要分目录,还需要设置不同的 ssh 密钥和 git 账号的关系。

可以在 ~/.ssh 目录再新建一套密钥或者也可以复制已有的到该目录,起不同的名字,比如下面这样是两套 ssh

id_rsa
id_rsa.pub

id_rsa_other
id_rsa_other.pub

然后在 ~/.ssh/config 配置文件分别指定不同的账号使用不同的 ssh 密钥:

# 默认账户
Host github.com
HostName github.com
User defaultUser // 这里改成自己的用户名
IdentityFile ~/.ssh/id_rsa

# 另一个账户
Host github.com-user1
HostName github.com
User otherUser // 这里改成自己的用户名
IdentityFile ~/.ssh/id_rsa_other

克隆仓库的时候可以改成这种格式:

git clone git@github.com-user1:otherUser/repo_name.git

参考

Set git config values for all child folders