git 在公司私有仓库和个人开源仓库如何快速设置对应的 git 邮箱和用户

2024-07-17 09:40:01 +08:00
 wswch4444

推荐个原创开发的小工具

当你需要提交代码 github ,需要使用自己的私人账号,同时在公司 git 仓库域下又需要使用工号和公司邮箱提交代码,正常做法是是将项目 clone 下来后,执行 git config --local user.name foo git config --local user.email bar@example.com ,当项目多的时候,每个项目都需要单独设置,比较繁琐,git-plus 就可以很好的解决这个问题

安装方法

本地安装 go 执行 go install github.com/OnlyPiglet/git-plus@latest ,在 go 的安装目录的 bin 目录中就会有 git-plus 二进制文件,加入到 path 环境变量即可使用

https://freelifeblog.top/2024/07/01/git-plus 工具推荐/ 中有更加详细的介绍

2888 次点击
所在节点    分享创造
24 条回复
jy02534655
2024-07-17 09:45:24 +08:00
用 Git Extensions 这类工具直接配置了
gesse
2024-07-17 09:57:46 +08:00
这个看着有点在简单的事情上增加了复杂度。

每次新建、clone 仓库的时候设置一下应该没什么繁琐和复杂的吧
gucheen
2024-07-17 09:58:44 +08:00
放到不同的文件夹下,通过 gitconfig 的文件夹过滤规则来配置 user 就可以了吧
sherlockwoo
2024-07-17 10:05:14 +08:00
原生实现可以使用 .gitconfig 搭配 includeIf
0o0O0o0O0o
2024-07-17 10:15:54 +08:00
常用的加入 git alias 更方便

git config --global alias.foo '!git config user.name Name && git config user.email bar@example.com'

git foo
wswch4444
2024-07-17 10:17:24 +08:00
@gesse 哈哈 因为项目比较多,有十几个,重新换电脑,不想一个一个设置,写了个自动设置的,能偷懒就偷懒了
wswch4444
2024-07-17 10:18:05 +08:00
@sherlockwoo 哈哈 学到了,试下,孤陋寡闻了
wswch4444
2024-07-17 10:18:13 +08:00
@jy02534655 哈哈 学到了,试下,孤陋寡闻了
wswch4444
2024-07-17 10:19:04 +08:00
@0o0O0o0O0o 嗯 当时想到了,没想用脚本做😄
lululau
2024-07-17 10:19:44 +08:00
~/.gitconfig:

[user]
email = zhangsan@gmail.com
name = Zhang San
[includeIf "hasconfig:remote.*.url:*://*gitlab.mycompany.com*/**"]
path = .gitconfig_mycompany

~/.gitconfig_mycompany:

[user]
email = zhangsan@mycompany.com
name = Zhang San
wswch4444
2024-07-17 10:45:43 +08:00
@lululau 嗯这个工具就是干的这个事情
gesse
2024-07-17 10:55:25 +08:00
@wswch4444
你项目的 local 配置不是在.git 目录下吗? 换电脑拷贝过来的时候应该是跟随项目的,为什么要重新配置?
Mystery0
2024-07-17 12:39:43 +08:00
需要多次执行的时候,把命令复制一下粘进去不就行了吗,我还以为这个是什么都不用做在 commit 的时候自动“分流”呢
wildlife
2024-07-17 15:26:29 +08:00
也可以根据不同项目路径切换配置

```
~/.gitconfig
[user]
name = me
email = me@your.com
[includeIf "gitdir:/srv/corp/"]
path = ~/.gitconfig_corp

~/.gitconfig_corp
[user]
name = corp
email = me@your_corp.com
```
v2defe
2024-07-17 16:16:08 +08:00
可是原生就支持啊。提交仓库如果是公司私有仓库的域名就使用公司账号,不是就用私人账号。
[Git 自动切换提交时使用的用户名]( https://www.cnblogs.com/xiaojiluben/p/18070630)
DiamondYuan
2024-07-17 22:35:46 +08:00
https://github.com/popomore/projj


我推荐 projj . + projj hooks


projj add git@github.com:popomore/projj.git

项目会自动放在 github.com/popomore/projj 里。



{
"hooks": {
"git_config_user": "projj_git_config_user"
},
"git_config_user": {
"github.com": {
"name": "your name",
"email": "your email",
"signingkey": "your signingkey"
}
}
}

题主的需求可以通过 hooks 来解决,add 的时候可以自动根据域名来决定使用公司邮箱还是个人邮箱。
eryajf
2024-07-17 23:18:16 +08:00
分享下我记录的比较详细的方法: https://wiki.eryajf.net/pages/6ec567/
tianice
2024-07-19 18:25:50 +08:00
调了半天 includeIf 不生效,原来是 git 版本的问题😞️
wswch4444
2024-07-24 17:17:06 +08:00
@gesse 没有从原电脑拷贝,直接从公司仓库重新拉的全新的🤠
wswch4444
2024-07-24 17:17:39 +08:00
@DiamondYuan 赞,问问大家,有好多办法。谢谢大家

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1057899

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX