git 多用户管理 跨平台

发布时间:2026/10/8 13:08:26

git 多用户管理 跨平台 一、概述​ 相信大家都遇到过这样的问题实际开发中需要在一台PC上用到 不同平台git的账号甚至同一个平台的多个账号比如本人gitee、字自己在nas上搭建的gitea另外还有github账号有时还会有公司的代码仓库账号就更多了。​ 于是就有了这次的笔记多用户管理即在同一台设备上使用git管理来自Gitee和Gitea、Github的不同仓库各自使用不同的身份SSH密钥或账号互不冲突。二、方案简单整理一下要求一键操作切换用户配置不希望额外单步配置 用户名 邮件 密码 等一系列繁琐操作配置管理简单不能有用户配置冲突扩展复用性需要较强适合随时添加用户跨平台使用Linux / Termuxandroid / Git Bash(windows)那么目前可以想到的最优方案就是为每个用户创建不同的空目录并单独局部配置项目结构如下/project_git/ ├── gitee/ │ ├── user_a │ │ ├── env.sh │ │ ├── .gitconfig │ │ ├── .ssh/ │ │ │ ├── config │ │ │ ├── id_rsa │ │ │ ├── id_rsa.pub │ │ └── project/ │ ├── user_b │ │ ├──... │ ├──... ├── gitea/ │ ├── user_a │ │ ├── env.sh │ │ ├── .gitconfig │ │ ├── .ssh/ │ │ │ ├── config │ │ │ ├── id_rsa │ │ │ ├── id_rsa.pub │ │ └── project/ │ ├── user_b │ │ ├──... │ ├──... ├──...三、具体步骤1、创建目录并生成密钥# 创建目录结构mkdir-p/project_git/gitee/.sshmkdir-p/project_git/gitee/project# 为Gitee创建SSH密钥建议giteeexample.com替换为实际邮箱即使错误也不影响仅用于管理区分# 注意检查 .ssh/id_rsa 权限需要为 600ssh-keygen-trsa-b4096-f/project_git/gitee/.ssh/id_rsa-Cgiteeexample.com2、配置Git身份信息为每一个用户环境新建/gitee/.gitconfig文件[user] name user_name email giteeexample.com注意gitee_user改成实际用户名。giteeexample.com改成实际邮件名。3、配置SSH文件/project_git/gitee/.ssh/configHost gitee HostName gitee.example.com Port23UsergitIdentityFile /project-git/gitee/.ssh/id_rsa IdentitiesOnlyyes注意gitee自定义gitee.example.com改为实际服务器地址或IP。23改为实际服务器端口如果是服务器域名则不需要。IdentityFile需要绝对地址使用realpath ../.ssh/id_rsa获取绝对地址4、写入环境启动脚本为每一个用户环境新建env.sh文件#!/bin/bashENV_DIR$(dirname $(realpath$0)) export GIT_CONFIG_GLOBAL$ENV_DIR/.gitconfig export GIT_SSH_COMMANDssh-F$ENV_DIR/.ssh/config echo ✅ 已启用 GIT 环境 echo 用户名:$(gitconfig--globaluser.name) echo 邮箱:$(gitconfig--globaluser.email) echo 工作目录:$ENV_DIR/project cd $ENV_DIR/project||exitbash赋权chmodx env.sh5、使用方法# 配置环境./env.sh# 测试验证环境配置正确返回结果包含 “Hi there, user_name! Youve successfully ...”ssh-F../.ssh/config-Tgitee# gitee环境拉取或推送代码gitclone gitee:user_name/project.git需要先将生成的密钥添加到对应的服务器具体的步骤可以参考 gitee 使用笔记 —基础篇然后执行./env.sh后自动进入project文件夹进入后就是处于当前账号绑定的shell环境下了所有Git操作都使用它的身份和 SSH 密钥。6、补充说明配置用途.gitconfig设置该身份的user.name和user.email.ssh/config设置连接仓库所用的私钥GIT_CONFIG_GLOBAL让 Git 使用局部配置替代默认全局配置GIT_SSH_COMMAND强制 Git 使用该环境下的 SSH 配置env.sh便捷脚本加载配置 进入项目目录四、极简超强方式下载链接(多用户管理一键执行应用git-env.bin)[https://download.csdn.net/download/Primary_rookie/91161710]当前制作了适用于Linux / Termuxandroid的一键执行应用git-env.bin,操作如下workwork:~/user_project/project-gitee$lsgit-env.bin workwork:~/user_project/project-gitee$sudochmodx git-env.bin[sudo]work 的密码 workwork:~/user_project/project-gitee$ ./git-env.bin ▶ Git 用户姓名(user.name): aaa ▶ Git 用户邮箱(user.email): aaaaaaa.com ▶ SSH 主机别名(如 gitee/gitea/github): gitee ▶ 服务器域名或 IP(HostName): gitee.com ▶ SSH 端口[回车默认22]: 已创建目录: /home/work/user_project/project-gitee/{.ssh,project}✅ 生成 .gitconfig ✅ 生成 SSH 密钥: .ssh/id_rsa(.pub)✅ 生成 .ssh/config ✅ 生成 env.sh 全部完成接下来3步即可开始使用1)打开远程平台如 Gitee个人设置SSH 公钥添加 ---------------------------------------------------------------- ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQCfMVj/w6kVMDh2ox6Ee2NtgtQkXTarllo2Rx/pb4/8NZY5gR/jmeXcOBH9ByEbFwXAzZZp8NpomZvu4QhC6ogFN4jsPdxXvJbVigIJB0UyocRE8StFkHYkY1NIkqDyQhu7oGyG7IkV469Q7wW7Z64DDCD7ZIkB2Qc2qKvK/212XX1HWAjtNGTUMxTfbLHf4fnYABSOY/MBC/3qdvo/2xo8CYhsuuH1YvVL3UD0nAT1nywR1fAdUHaIK8G3kps7hbAvBVrLdRr51scdj0RWTqKDkGt6MDgj/U2h3V1cW8gSeRuMzSyjiu5ojXG120iY0LJS4iUrAhlr/WhWVMYiHb71/xF7bFjOcbFWsIPE3PGwuDQNJZKbCVmT/0wFpdDw5dG9f3QkVzYktgupHRMmkM46QKX8wTTzbkqbOcPE5oEXs08OSUkvOMfnye3uWKSMW4phPII2ebqMi3uXiGQyjNndsQL4CSug8gFGwoL1oqzQZkDJarcQsCfRLbWdM9nqq2bYZYOBkx3IeowA4kg6HJLe8Qc31Og4JV4GfLqghJQwcV5h2juUuWsIDjoYGFNogIPb9vPGk1yFEKJpqlLmmyOpD/3haTDv5XdiCzwhN4K0I6OT8ix58fs96ZL/K995DYQRuFERfqG/uLQMAETKrx7Q/h4IphHHvwaaaaaaa.com ----------------------------------------------------------------2)在本机运行: ./env.sh 将自动进入 project/ 并载入 Git 身份。3)在 project/ 里执行gitclone gitee:user/repo.git 即可。 workwork:~/user_project/project-gitee$ls-a...env.sh .gitconfig git-env.bin project .ssh workwork:~/user_project/project-gitee$ ./env.sh ✅ 启动 GIT 环境Gitea 用户名: aaa 邮箱: aaaaaaa.com 工作目录: /home/work/user_project/project-gitee/project 当前操作:gitpull 自动提交模式:false 正在扫描 Git 仓库... 执行摘要: ✅ 成功仓库:0❌ 失败仓库:0⏭️ 跳过非 Git 目录:1- */ 操作完成进入交互环境 workwork:~/user_project/project-gitee/project$
延伸阅读

更多相关文章

2026/9/28 11:51:28

Gson版本管理全攻略:从安全升级到高级应用实践

1. 项目缘起:为什么我们需要持续关注Gson的版本更新? 作为一名在Java后端领域摸爬滚打了十多年的老码农,我几乎见证了Java生态中各种工具库的兴衰迭代。Gson,这个由Google出品的JSON处理库,可以说是我们日常开发中处理…

2026/10/6 0:06:19

Spring事务传播机制详解:从原理到实战避坑指南

1. 从一个转账失败的深夜说起上周五晚上十一点,我正打算关电脑,突然收到测试同事发来的消息:“哥,那个批量转账的接口又出问题了,A账户扣了钱,B账户没收到,但日志里显示两个操作都成功了。” 我…

2026/9/23 3:29:36

类与对象一

1. 类与对象是什么1.1 类是什么可以把类想象成一个百宝袋,里面装着一个事物的属性以及行为,比如一只可爱的猫猫,这只猫猫的属性——种类,也可以理解为一个事物的特征,这只猫猫的特征——颜色。那么于此同时&#xff0c…

2026/10/8 13:05:48

Unity内嵌浏览器ZFBrowser实战指南:数字孪生与网页交互

做数字孪生项目时我遇到一个很典型的需求:要在Unity场景里嵌入一个实时网页仪表盘,用户可以一边看3D设备状态,一边滚动查看网页上的数据图表。一开始我走的是UITexture加浏览器截图的野路子,结果延迟高、不能点击、页面一滚动就卡…

2026/10/8 13:05:48

AI编程助手如何更靠谱?Claude Code superpowers的TDD工作流实践

Claude Code 用了两个多月,我一度觉得瓶颈不在模型,而在工作流。每次让它改需求,它总是很积极地写出一大堆代码,然后告诉我"完成了",可我一跑测试就红成一片。直到我装上 superpowers 这套 Skills&#xff0…

2026/10/8 13:00:47

TPS259483AYWPR+ATmega32构建智能电源路径保护系统

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/8 10:03:18

Jev+Agent接管浏览器:browser-use实战与jev-ultrafast性能优化

1. 从“Jev”说起:为什么我要把Agent接进浏览器“Jev”这个词最近在圈子里出现的频率越来越高,很多人第一次听到会以为是某个新模型的名字,其实它更像是一种思路——把Jev模型的能力当作底座,通过Agent的方式去接管浏览器&#xf…

2026/10/8 10:03:20

多智能体集群实战:DeepAgents编排、MCP与A2A协议及Skills体系

1. 从"单兵作战"到"集群协同":多智能体编排到底在解决什么问题如果你最近在折腾 Agent 相关的东西,大概率会有一种感觉:单个 Agent 能做的事情,其实很快就摸到天花板了。你给它一个提示词,挂几个工…

2026/10/8 6:05:44

无源低通滤波器设计实战:从RC到LC,手把手教你避开那些坑

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/8 0:02:17

自然数立方等于连续奇数之和:从证明到编程验证

十几年来我一直游走在数学科普和编程教学这两块内容之间,对“看起来像魔法、拆开全是数学”的结论总是格外敏感。最近翻资料时又撞见一句话:任何一个自然数 m 的立方,都可以写成 m 个连续奇数之和。2 的立方等于 3 加 5,3 的立方等…

2026/10/8 0:02:17

C#上位机SSH连接实战:用SSH.NET补齐超时、批量与密钥认证

简介:这是一份基于 C# 开发的 SSH 连接功能半成品工程,原本作为另一个主项目的子功能模块,现独立打包分享。工程采用 WinForms 界面,包含源码、解决方案、安装部署工程、NuGet 依赖包及说明文档,适合正在做远程连接、网…

2026/10/8 0:02:17

Java SpringBoot一体化智能售后系统设计与实现全解析

毕业设计年年做,Java Web 方向的题目翻来覆去就那么几个,但“一体化智能售后系统”这个题,每次看到我都觉得值得认真聊一聊。它不是一个简单 curd 堆出来的管理系统,而是把客户、工单、派单、处理、回访、统计整条链路串起来的一套…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑