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

158 天前
 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 工具推荐/ 中有更加详细的介绍

2362 次点击
所在节点    分享创造
24 条回复
jy02534655
158 天前
用 Git Extensions 这类工具直接配置了
gesse
158 天前
这个看着有点在简单的事情上增加了复杂度。

每次新建、clone 仓库的时候设置一下应该没什么繁琐和复杂的吧
gucheen
158 天前
放到不同的文件夹下,通过 gitconfig 的文件夹过滤规则来配置 user 就可以了吧
sherlockwoo
158 天前
原生实现可以使用 .gitconfig 搭配 includeIf
0o0O0o0O0o
158 天前
常用的加入 git alias 更方便

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

git foo
wswch4444
158 天前
@gesse 哈哈 因为项目比较多,有十几个,重新换电脑,不想一个一个设置,写了个自动设置的,能偷懒就偷懒了
wswch4444
158 天前
@sherlockwoo 哈哈 学到了,试下,孤陋寡闻了
wswch4444
158 天前
@jy02534655 哈哈 学到了,试下,孤陋寡闻了
wswch4444
158 天前
@0o0O0o0O0o 嗯 当时想到了,没想用脚本做😄
lululau
158 天前
~/.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
158 天前
@lululau 嗯这个工具就是干的这个事情
gesse
158 天前
@wswch4444
你项目的 local 配置不是在.git 目录下吗? 换电脑拷贝过来的时候应该是跟随项目的,为什么要重新配置?
Mystery0
158 天前
需要多次执行的时候,把命令复制一下粘进去不就行了吗,我还以为这个是什么都不用做在 commit 的时候自动“分流”呢
wildlife
158 天前
也可以根据不同项目路径切换配置

```
~/.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
158 天前
可是原生就支持啊。提交仓库如果是公司私有仓库的域名就使用公司账号,不是就用私人账号。
[Git 自动切换提交时使用的用户名]( https://www.cnblogs.com/xiaojiluben/p/18070630)
DiamondYuan
157 天前
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
157 天前
分享下我记录的比较详细的方法: https://wiki.eryajf.net/pages/6ec567/
tianice
155 天前
调了半天 includeIf 不生效,原来是 git 版本的问题😞️
wswch4444
150 天前
@gesse 没有从原电脑拷贝,直接从公司仓库重新拉的全新的🤠
wswch4444
150 天前
@DiamondYuan 赞,问问大家,有好多办法。谢谢大家

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

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

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

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

© 2021 V2EX