git 在公司私有仓库和个人开源仓库如何快速设置对应的 git 邮箱和用户 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
wswch4444
V2EX    分享创造

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

  •  
  •   wswch4444 2024-07-17 09:40:01 +08:00 3203 次点击
    这是一个创建于 527 天前的主题,其中的信息可能已经有所发展或是发生改变。

    推荐个原创开发的小工具

    git-plus

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

    安装方法

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

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

    24 条回复    2024-09-05 11:27:10 +08:00
    jy02534655
        1
    jy02534655  
       2024-07-17 09:45:24 +08:00
    用 Git Extensions 这类工具直接配置了
    gesse
        2
    gesse  
       2024-07-17 09:57:46 +08:00
    这个看着有点在简单的事情上增加了复杂度。

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

    git config --global alias.foo '!git config user.name Name && git config user.email [email protected]'

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

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

    ~/.gitconfig_mycompany:

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

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

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


    我推荐 projj . + projj hooks


    projj add [email protected]: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
        17
    eryajf  
       2024-07-17 23:18:16 +08:00
    分享下我记录的比较详细的方法: https://wiki.eryajf.net/pages/6ec567/
    tianice
        18
    tianice  
       2024-07-19 18:25:50 +08:00
    调了半天 includeIf 不生效,原来是 git 版本的问题
    wswch4444
        19
    wswch4444  
    OP
       2024-07-24 17:17:06 +08:00
    @gesse 没有从原电脑拷贝,直接从公司仓库重新拉的全新的
    wswch4444
        20
    wswch4444  
    OP
       2024-07-24 17:17:39 +08:00
    @DiamondYuan 赞,问问大家,有好多办法。谢谢大家
    wswch4444
        21
    wswch4444  
    OP
       2024-07-24 17:18:48 +08:00
    @Mystery0 哈哈 不管大小,能偷一点懒是一点
    wswch4444
        22
    wswch4444  
    OP
       2024-07-24 17:19:22 +08:00
    @v2defe 嗯嗯 我不知道这个
    wswch4444
        23
    wswch4444  
    OP
       2024-07-24 17:19:39 +08:00
    @eryajf
    kinfuy
        24
    kinfuy  
       2024-09-05 11:27:10 +08:00
    https://github.com/kinfuy/gacm 这个工具不仅仅可以管理 git 账户 还能处理 npm 镜像源
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     1744 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 24ms UTC 16:14 PVG 00:14 LAX 08:14 JFK 11:14
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86