本地多个 Git 邮箱身份,commit 的时候不方便,怎么整?


以下是有关如何管理多个 Git 身份(例如个人、工作、client1、client2)的快速提示。

我将 Git 存储库分为三个级别。我的个人项目位于一个~/sources目录中。我所有的工作项目都位于~/work.这是第一级。

2 级是客户端,例如~/work/client1。当然,第 3 级是项目存储库:~/work/client1/foo-api.

这就是我的工作目录的组织方式:

/Users/garrit/work

├── client1

│ ├── foo-api

│ ├── foo-ios

│ └── foo-android

└── client2

├── bar-ios

└── bar-middleware

现在,假设client2我们需要使用与默认工作电子邮件不同的身份进行提交。除此之外,您可能还有一个用于您自己的项目的个人电子邮件地址。你是如何做到这一点的?

.gitconfig 包括

Git 的全局配置文件是~/.gitconfig.如果您曾经设置过如下参数git config user.name "Foo Bar":这就是它的最终结果。

.gitconfig 文件的一个很棒的功能是您可以有条件地包含其他配置文件,这就是诀窍。这是我的~/.gitconfig文件:

[user]

name = Garrit Franke

email = [email protected]


[includeIf "gitdir:~/work/"]

path = ~/.gitconfig-work


[includeIf "gitdir:~/work/client2/"]

path = ~/.gitconfig-client2


[includeIf "gitdir:~/sources/"]

path = ~/.gitconfig-personal


# ...

默认情况下,我的姓名和电子邮件始终设置为我的个人身份。我还在这里存储了一些其他全局设置,但这些与本文无关。如果存储库位于该目录内,则会包含~/work一个名为的文件。~/.gitconfig-work这只是另一个 gitconfig 文件。这就是我的情况:

[user]

name = Garrit Franke

signingkey = 12345678

email = [email protected]


[commit]

gpgsign = true

我希望你能明白这是怎么回事。对于每个身份,您都保留一个单独的 gitconfig 文件并将其包含在 main 中~/.gitconfig。至关重要的是,这要求您按客户分组组织存储库。

这个技巧大大简化了我的项目启动过程。不再有客户提出“您忘记更新您的电子邮件地址”的请求!

原文:https://garrit.xyz/posts/2023-10-13-organizing-multiple-git-identities


相關推薦

2022-10-27

吧,如果你用不上云端的功能,那就没有登录的必要,在本地空间内尽情使用吧~       如何使用   在服务端运行下面命令使用 Docker 一键启动。   git clone https://github.com/eolinker/eoap

2023-04-03

口关闭并重新打开之前更改键盘快捷键不会应用它们 从本地文件切换到历史记录时可能出现内部错误 All Branches + Tags:HEAD 出现时带有标签符号 Graph: 单击分支箭头没有加载更多提交 在 All Branches + Tags 和 Stashes 之间切

2021-12-29

此不需要在项目中添加任何文件。 CLI 用例: 创建新身份: git bug user create 新建一个 bug 项: git bug add 此操作将打开编辑器,以输入标题和信息。 远程推送新 bug 项: git bug push [<remote>] 拉取更新:

2022-08-07

的特性有:完整的k8s模式支持,团队管理能力,简化使用本地IDE(VSCode/JetBrains Gateway)连接SmartIDE工作区的Hybrid模式,工作区扩展组件Web Terminal,ARM处理器支持以及Gitlab CI/CD流水线支持。另外,我们也扩展了VMLC的支持范围,对 no

2024-03-22

性变更) 为了支持适当级别的 worktree 配置(优先级高于本地配置,但低于特定于应用程序的配置),GIT_CONFIG_LEVEL_WORKTREE级别被引入到优先级 6。GIT_CONFIG_LEVEL_APP现在从优先级 7 开始。 更改git_config_entry(ABI 破坏性变更)git_con

2023-08-04

xt 是否以管理员权限运行 改进了缩进检测,可检测包含多个单空格缩进的文件 改进了使用文本换行时的插入符定位 修复了侧栏中的文件无法正确反映其 git 状态的问题 在文件中查找:修复了搜索结果未排序的问题 在文

2023-09-18

【视频演示】Easy Retry 2.3.0 & 3.0.0发布 支持Spring Boot 等多个新功能 Easy Retry  致力提高分布式业务系统一致性的分布式重试平台 易用性 业务接入成本小。避免依赖研发人员的技术水平,保障重试的稳定性 灵活

2023-11-16

一款致力提高分布式业务系统一致性的分布式重试与任务调度平台 易用性 业务接入成本小。避免依赖研发人员的技术水平,保障稳定性 灵活性 能够动态调整配置,启动/停止任务,以及终止运行中的任务 操作简单&nbs

2022-02-18

是每隔一段时间,总有人用下面这段代码表示 Go 的首次 commit 是在 1972 年: % git log --reverse --stat commit 7d7c6a97f815e9279d08cfaea7d5efb5e90695a8 Author: Brian Kernighan <bwk> AuthorDate: Tue Jul 18 19:05:45 1972 -0500 Commit: Brian Kernighan <bwk> CommitD

2024-10-08

集设备数据上报,经过规则链的规则判断,触发一个或者多个动作,例如:发邮件、发告警、和其他设备或者系统联动。 数据分发: 可以根据不同的消息类型,调用 HTTP、MQTT 或者 gRPC 把数据分发到不同系统。 应用集成: 把

2024-10-10

(可以兼容安卓应用)的选项,但回退会清空数据,手机本地的微信聊天记录就没了。 这名工程师还在评论区回答了许多网友的问题,罗列部分如下: 怎么才能知道自己是否收到了内测邀请呢? 如果收到邀请,华为账号

2022-06-10

果,但它在许多情况下应该很有用。 VS Code for the Web 本地化 - vscode.dev 现在与你选择的浏览器语言相匹配。 VS Code for Web 的初始本地化支持。对于将浏览器设置为支持的核心语言之一的用户,vscode.dev 将自动应用该语

2024-02-20

查文件,更新系统后提醒用户刷新页面 新增 列设置的本地存储状态显示,如果修改过显示红色按钮 新增 axios authenticationHeader 参数指定不同的 token 名称 优化 仪表盘,每个组件都增加骨架屏,而不是整个组件统一控制

2022-07-08

rations- 突出显示任务成功或失败的退出代码。 Git Commit 操作按钮- 配置你的默认 Git Commit 操作。 添加了一个 Commit 按钮,该按钮具有主要操作和一组辅助操作。可以使用git.postCommitCommand设置控制辅助操作