码迷,mamicode.com
首页 > 其他好文 > 详细

Git多帐号问题

时间:2016-05-12 12:54:54      阅读:138      评论:0      收藏:0      [点我收藏+]

标签:

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 git@Gitlab: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代替真实的git@remoteAddress中的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显示的中文文件名乱码

Git多帐号问题

标签:

原文地址:http://blog.csdn.net/liujiakunit/article/details/51367122

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!