V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
wswch4444
V2EX  ›  分享创造

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

  •  
  •   wswch4444 · 120 天前 · 2296 次点击
    这是一个创建于 120 天前的主题,其中的信息可能已经有所发展或是发生改变。

    推荐个原创开发的小工具

    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  
       120 天前
    用 Git Extensions 这类工具直接配置了
    gesse
        2
    gesse  
       120 天前
    这个看着有点在简单的事情上增加了复杂度。

    每次新建、clone 仓库的时候设置一下应该没什么繁琐和复杂的吧
    gucheen
        3
    gucheen  
       120 天前   ❤️ 2
    放到不同的文件夹下,通过 gitconfig 的文件夹过滤规则来配置 user 就可以了吧
    sherlockwoo
        4
    sherlockwoo  
       120 天前   ❤️ 2
    原生实现可以使用 .gitconfig 搭配 includeIf
    0o0O0o0O0o
        5
    0o0O0o0O0o  
       120 天前   ❤️ 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
       120 天前
    @gesse 哈哈 因为项目比较多,有十几个,重新换电脑,不想一个一个设置,写了个自动设置的,能偷懒就偷懒了
    wswch4444
        7
    wswch4444  
    OP
       120 天前
    @sherlockwoo 哈哈 学到了,试下,孤陋寡闻了
    wswch4444
        8
    wswch4444  
    OP
       120 天前
    @jy02534655 哈哈 学到了,试下,孤陋寡闻了
    wswch4444
        9
    wswch4444  
    OP
       120 天前
    @0o0O0o0O0o 嗯 当时想到了,没想用脚本做😄
    lululau
        10
    lululau  
       120 天前   ❤️ 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
       120 天前
    @lululau 嗯这个工具就是干的这个事情
    gesse
        12
    gesse  
       120 天前
    @wswch4444
    你项目的 local 配置不是在.git 目录下吗? 换电脑拷贝过来的时候应该是跟随项目的,为什么要重新配置?
    Mystery0
        13
    Mystery0  
       120 天前 via Android
    需要多次执行的时候,把命令复制一下粘进去不就行了吗,我还以为这个是什么都不用做在 commit 的时候自动“分流”呢
    wildlife
        14
    wildlife  
       120 天前
    也可以根据不同项目路径切换配置

    ```
    ~/.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  
       120 天前
    可是原生就支持啊。提交仓库如果是公司私有仓库的域名就使用公司账号,不是就用私人账号。
    [Git 自动切换提交时使用的用户名]( https://www.cnblogs.com/xiaojiluben/p/18070630)
    DiamondYuan
        16
    DiamondYuan  
       120 天前
    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  
       120 天前
    分享下我记录的比较详细的方法: https://wiki.eryajf.net/pages/6ec567/
    tianice
        18
    tianice  
       118 天前
    调了半天 includeIf 不生效,原来是 git 版本的问题😞️
    wswch4444
        19
    wswch4444  
    OP
       113 天前
    @gesse 没有从原电脑拷贝,直接从公司仓库重新拉的全新的🤠
    wswch4444
        20
    wswch4444  
    OP
       113 天前
    @DiamondYuan 赞,问问大家,有好多办法。谢谢大家
    wswch4444
        21
    wswch4444  
    OP
       113 天前
    @Mystery0 哈哈 不管大小,能偷一点懒是一点 🥳
    wswch4444
        22
    wswch4444  
    OP
       113 天前
    @v2defe 嗯嗯 我不知道这个
    wswch4444
        23
    wswch4444  
    OP
       113 天前
    @eryajf
    kinfuy
        24
    kinfuy  
       70 天前
    https://github.com/kinfuy/gacm 这个工具不仅仅可以管理 git 账户 还能处理 npm 镜像源
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1509 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 17:21 · PVG 01:21 · LAX 09:21 · JFK 12:21
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.