Git多帐号问题

git多个帐号的问题

由于我平时使用的github和公司的gitlab所用的用户名以及邮箱不同。所以要设置git多帐号登录。

取消git全局设置

网上的教程中大都是对git进行全局设置,如下所示:

git config --global user.name "your_name"
git config --global user.email "your_email"

如果参与的项目都允许你用同一个用户名和邮箱,这样设置没问题,但是在公司里,大都会配置相应的域帐号和公司邮箱,因此我们首先需要取消git的全局设置:

git config --global --unset user.name
git config --global --unset user.email

SSH配置

假设 有两个git项目,使用用户名分别为A/B,用的邮箱分别为C/D。则分别进行如下:

  • 在~/.ssh目录下,使用ssh-keygen -C "your_email" -t rsa生成公钥和私钥,命名分别为id_rsa_first,id_rsa_second**(注意不按照默认配置命名)**,并需要将公钥的内容分别上传到git项目的服务器上。
  • 在~/.ssh目录下创建或修改config文件,并进行相应配置。

我的config文件配置代码如下:

#该文件用于配置私钥对应的服务器

#github.com上的帐号
#建立github.com的简称,使用这个别名做克隆和更新
Host    Github
# 主机名可用ip也可以用域名
HostName    github.com
User    kungeplay
IdentityFile    ~/.ssh/id_rsa_github

#gitlab上的帐号
Host    Gitlab
HostName    gitlab.corp.XXX.com
User    jiakun.liu
IdentityFile    ~/.ssh/id_rsa_gitlab

#oschina上的帐号
Host    Oschina
HostName    git.oschina.net
User    kungeit
IdentityFile    ~/.ssh/id_rsa_oschina

配置Git项目仓库

针对每个项目单独设置用户名和邮箱:进入到各自git项目repository的相对根目录下,通过git config配置用户名和密码。

比如我用git init在工作目录中初始化新仓库时:

mkdir Git_Hub/Shell_Practice && cd Git_Hub/Shell_Practice
git init
git config user.name "your_name"
git config user.email "your_email"
git remote add origin git@Github:/kungeplay/Shell_Practice.git
git pull origin master

再比如我用git clone从现有仓库中克隆一个新仓库时:

cd ~/Git/Git_Lab/
git clone [email protected]:jiakun.liu/second_gitlab.git
cd second_gitlab/
git config user.name "your_name"
git config user.email "your_email"
vim NewFile
git  status
git add NewFile
git commit -m "这是一个新文件"
git push  origin master

上述的git config命令没有加”–global”参数,因而是针对具体本地git项目repository目录的。这些配置的优先级高于全局配置。

注意在clone或者add remote的时候,需要使用.ssh目录中的config文件中的Host代替真实的[email protected]中的remoteAddress,这样才能让git识别出来。比如config文件中设置的关于github上的Host为Github,则:

git clone git@Github:kungeplay/Shell_Practice.git

其他一些不涉及具体仓库的可以全局配置。比如

git config --global color.ui true   # 彩色的git输出
git config --global push.default simple # 执行git push没有指定分支时,只有当前分支会被push到你使用 git pull获取的代码
git config --global core.autocrlf false # 让Git不要管Windows/Unix换行符转换的事
git config --global gui.encoding utf-8  # 避免git gui中的中文乱码
git config --global core.quotepath off  # 避免git status显示的中文文件名乱码
时间: 2024-10-16 18:31:37

Git多帐号问题的相关文章

git保存帐号密码

每次更新git都要输入帐号密码比较麻烦,可以通过手动设置配置文件. window下: 进入home文件夹,一般是C:\Users\Administrator,创建.git-credentials文件(可以先创建一个git-credentials文件,然后在git bash下使用命令 mv git-credentials .git-credentials),打开文件,输入  http://{用户名}:{密码}@{服务器域名或ip} 保存 在bash下,执行 git config --global

微软在线 VSTS/TFS 使用简介,如何删除项目,帐号,获取git地址等

名称:微软 VSTS 全称: Visual Studio Team Services 地址:https://www.visualstudio.com/zh-hans/ 说明:注册就可以了使用了(如何使用注册 请自行百度,有详细教程,这里就不详细说明了) 本文主要介绍如何删除 和查找Git克隆地址,也是我最近遇到的问题!!! 如何删除项目: 如何删除帐号: 如何获取git Clone地址 原文地址:https://www.cnblogs.com/shuyu/p/9120071.html

如何在git中切换GitHub帐号

错误:刚接触到git,按照教程成功推送了远程库,然后当我想换一个github帐号推送时出现了403错误.提示拒绝我原来的帐号. 解决方案:该错误出现的原因是计算机已经保存了一个GitHub用户名和密码,所以当你转移到另一个帐号时,将出现403错误.下面是Windows的解决方案.控制面板->用户帐户->凭据管理器->Windows凭据  删除其中普通凭据中的git密钥.然后重新推送即可. 原文地址:https://www.cnblogs.com/wheszza/p/10646663.ht

为github帐号添加SSH keys(Linux和Windows)

文章转自:https://blog.cofface.com/archives/406.html/2 一.Linux增加ssh keys方法: 使用git clone命令从github上同步github上的代码库时,如果使用SSH链接(如我自己的cofface_recovery项目:[email protected]:cofface/cofface_recovery.git),而你的SSH key没有添加到github帐号设置中,系统会报下面的错误:Permission denied (publi

为github帐号添加SSH keys

使用git clone命令从github上同步github上的代码库时,如果使用SSH链接(如我自己的beagleOS项目:[email protected]:DamonDeng/beagleOS.git),而你的SSH key没有添加到github帐号设置中,系统会报下面的错误: Permission denied (publickey). fatal: The remote end hung up unexpectedly 这时需要在本地创建SSH key,然后将生成的SSH key文件内容

GitHub学习心得之 安装配置与多帐号管理

1.前言2.GitHub Linux安装(ubuntu)3.帐号1配置4.帐号2配置5.本地管理 一.前言 本篇博文记录了GitHub的安装配置与多帐号管理. 本文内容基于以下文章:http://www.runoob.com/w3cnote/git-guide.html (Github 简明教程)http://m.blog.csdn.net/article/details?id=41824339 (如何在同一台电脑上使用两个github账户)http://www.tuicool.com/arti

多github帐号的SSH key切换

我有两个github帐号,一个是个人所用,一个是为公司项目所用.如果是单用户(single-user),很方便,默认拿id_rsa与你的github服务器的公钥对比:如果是多用户(multi-user)如user1,user2,那么就不能用在user2的身上了,这个时候就要配置一下了: 1.新建user2的SSH Key #新建SSH key: $ cd ~/.ssh # 切换到C:\Users\Administrator\.ssh ssh-keygen -t rsa -C "[email pr

Windows 下TortoiseGit 设置避免每次登录帐号密码

TortoiseGit ->Settings 1.选择设置的git目录 2.输入登录帐号与email 3.点击Edit global.gitconfig 编辑,将文本 [credential] helper = store 追加到文本行后 保存退出. 下次再输入用户名 和密码 时git就会记住,就不用每次输入登录信息啦.

在GitHub多个帐号上添加SSH公钥

GitHub后台可以添加多个SSH Keys,但是同一个SSH Keys只能在添加在一个帐号上(添加时提示“Key is already in use”).理由很容易想到,SSH公钥使用时相当于用户名密码,不可能两个不同的帐号使用同一个用户名密码.要想在多个GitHub帐号上添加公钥,就要在本地生成多个SSH Keys,每个GitHub帐号对应一个不同的SSH Keys.步骤如下:1.生成一个新的SSH KEY [email protected]:~$ ssh-keygen -t rsa -C