MorFans Dev
折腾 - 开发 - 分享

Git配置:如何优雅的配置多用户并使用 ssh 密钥验证

Git配置:如何优雅的配置多用户并使用 ssh 密钥验证

Git 是分布式版本控制软件,最初由林纳斯·托瓦兹(Linus Torvalds)创造,于2005年以 GPL 许可协议发布。最初目的是为了更好地管理 Linux 内核开发而设计。今天它已经成为了最受欢迎的版本控制系统,并在全球范围内得到广泛的使用。

在使用它进行协作开发时,我们通常需要配置本地 Git 环境,以便让 Git 记住个人信息。这样在提交代码时,Git 就知道是谁进行了提交,并能够跟踪和记录修改历史。使用命令配置要么只能全局配置一个,或者每个仓库一个一个配置用户,在实际开发中,我们有时需要频繁同时使用不同的 Git 账户,比如工作账户和个人账户等。如果按传统的配置方法就略显麻烦了。

这时候,我们可以通过 .gitconfig 文件来配置多个 Git 账户。

.gitconfig 是 Git 的配置文件,位于当前用户的主目录下,用于记录 Git 的配置信息,包括用户名、Email、SSH keys 等。在这个文件中,我们可以为每个用户设置一个单独的配置项,以便在不同的项目中自动选择对应的用户信息。

接下来,我将向大家介绍在 Linux 和 Windows 系统中,如何使用目录匹配的方式配置多个 Git 用户。

Linux 上的配置方法

在 Linux 系统中,我们可以使用以下命令新建和编辑.gitconfig 文件:

.gitconfig 文件需要创建在用户的 home 目录下

注意事项
touch .gitconfig
vim .gitconfig  # 使用vim编辑这个文件

.gitconfig 文件中,我们可以通过以下配置项来设置多个 Git 用户信息:

[user]
        name = Paxxs
        email = 邮箱
[core]
        sshCommand = ssh -i ~/.ssh/ssh_key密钥路径 -F /dev/null
[includeIf "gitdir:~/project/github.com/SuperPaxxs/"]
        path = .gitconfig-superpaxxs

其中,第一个 [user] 配置项是全局用户信息,用于设置 Git 的默认用户信息。这个信息会被应用到所有 Git 仓库中,如果某个仓库没有单独配置用户信息,就会使用该全局配置。

接下来,我们使用 includeIf 配置文件匹配规则,gitdir 可以指定要匹配的 Git 仓库目录或路径,path 则是要使用的自定义配置文件路径。

在上面的例子中,我们定义了一个以 ~/project/github.com/SuperPaxxs/ 结尾的文件夹路径,然后使用 .gitconfig-superpaxxs 文件来保存该文件夹专属的用户信息。之后在这个文件夹内的所有仓库,默认用户都是在 .gitconfig-superpa 中定义的用户。

如果不以 / 结束目录名,则可能会出现不匹配的情况。因此,我们必须确保仓库路径以 / 结尾才能正确匹配。

注意事项

如果在 Github 或其他平台上配置了 ssh key 密钥验证,就需要像上面那个配置文件里的 core.sshCommand 配置一样的指定 ssh key 路径,如果不需要这种验证,删掉上面的 core.sshCommand 即可。

最后就只需要创建 .gitconfig-superpaxxs 文件了

[user]
        name = SuperPaxxs
        email = 邮箱
[core]
        sshCommand = ssh -i ~/.ssh/ssh_key密钥路径 -F NUL

Windows 上的配置

Windows 上的配置和 Linux 上的配置几乎一致,只有路径等的表示方式会有不同。所以详细解释请参考上方内容。

还有一个地方可能会有一点点不同,就是使用 ssh key 验证配置的那块地方:sshCommand。ssh 在 Windows 上有不同的版本,有的是那种模拟的环境,所以也能像 Linux 那样指定黑洞路径 /dev/null

在 Windows 用户文件中创建 .gitconfig 文件并编辑:

Fervent-Bucket on master 
❯ touch C:\Users\Paxos\.gitconfig

Fervent-Bucket on master 
❯ code-insiders.cmd C:\Users\Paxos\.gitconfig  #这里是使用 vscode 编辑,任何编辑器都行
[user]
        name = Paxxs
        email = 邮箱
[core]
        sshCommand = ssh -i ~/.ssh/ssh_key密钥路径 -F NUL
[includeIf "gitdir:D:/Project/github.com/SuperPaxxs/"]
        path = .gitconfig-superpaxxs

在上面的例子中,我们同样定义了一个以 D:/Project/github.com/SuperPaxxs/ 结尾的路径,然后使用 .gitconfig-superpaxxs 文件来保存该文件夹内的专属的用户信息。

除了以上所提到的配置项之外,.gitconfig 文件还支持很多其他的配置选项,如代理设置、颜色配置等。对于想要深入了解 Git 的配置和使用的同学,可以参考官方文档或其他相关教程。

总之,通过以上介绍,我们可以看到,在 Linux 和 Windows 系统中,都可以使用目录匹配的方式来设置多个 Git 用户信息,让 Git 在不同的项目中使用不同的用户信息。这种方法可以保证我们的代码提交记录更加准确、清晰,也能更好地满足我们的需求。

赞赏
魔帆博客,版权所有 | 如未注明,均为原创
本站均采用 BY-NC-ND 协议 (署名-非商业性使用-禁止演绎) 进行授权。
转载请注明来自本站文章:Git配置:如何优雅的配置多用户并使用 ssh 密钥验证(https://www.morfans.cn/archives/3443)
# # # # #
首页      记录点滴      Git配置:如何优雅的配置多用户并使用 ssh 密钥验证

野小新

文章作者

野小新很野~

发表回复

textsms
account_circle
email

Git配置:如何优雅的配置多用户并使用 ssh 密钥验证
Git 是分布式版本控制软件,最初由林纳斯·托瓦兹(Linus Torvalds)创造,于2005年以 GPL 许可协议发布。最初目的是为了更好地管理 Linux 内核开发而设计。今天它已经成为了最受欢迎的版…
扫描二维码继续阅读
2023-05-18