前言
最近工作上遇到了使用git+repo的情况,需要用公司的邮箱和域账号名重新申请git账号,而我本身在github上也有一些开源项目,这里就是记录一下我是如何实现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
针对每个项目,单独设置用户名和邮箱,设置方法如下:
git config user.name "your_name"
git config user.email "your_email"
说白了,也就是进入到你的git项目相对根目录下,然后执行git config设置记录
SSH配置
- 我现在有两个git项目,
公司
和github
2.在~/.ssh目录下,使用ssh-keygen -C "your_email" -t rsa
生成公私秘钥,命名分别为id_rsa_公司
,id_rsa_github
,公钥的内容需要分别上传到git项目的服务器上 - 打开ssh-agent
这里如果你用的github官方的bash,ssh-agent -s
,如果是其他的,比如msysgit,eval $(ssh-agent -s)
- 添加私钥
ssh-add ~/.ssh/id_rsa_公司
ssh-add ~/.ssh/id_rsa_gitlab
- 在~/.ssh目录下创建config文件,进行相应配置:
# 公司
Host 公司地址.com
HostName 公司地址.com //这里填你们公司的git网址即可
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa_公司
User xander
# github
Host github.com
HostName github.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa_github
User Xander
老项目新添加.gitignore文件
首先为避免冲突需要先同步下远程仓库
$ git pull
在本地项目目录下删除缓存
$ git rm -r --cached .
新建.gitignore文件
在项目的根目录下面新建.gitignore文件并添加相应的过滤规则
再次add所有文件
输入以下命令,再次将项目中所有文件添加到本地仓库缓存中
$ git add .
再次添加commit
这次commit是为了说明添加ignore文件的。
$ git commit -m
"add ignore"
最后提交到远程仓库即可
$ git push
网友评论