git的使用及采坑记录(持续更新)
文章目录
一、一台电脑创建多个github账号
如何在一台电脑上使用多个github账号,由于之前已经配置过一个github账号,最近又注册了了一个账号,显然现在多账号的问题出现在自己面前,于是就扒了下多账号的设置。希望对遇到同样问题的你有一点帮助。
注:本人配置时候参考一台电脑多个github账号设置,由于未及时截图,本文使用部分原文图片及文字。
1.生成多个SSH Key
进入用户家目录Windows 使用Git Bash, Linux 打开terminal. 各系统对应的目录位置如下:
Windows目录: C:\Users\用户名.ssh
Linux\Mac目录:~/.ssh
ssh-keygen -t rsa -C email
输入如上命令,email 替换成需要生成key的邮箱回车,由于是多账号,我们需要修改默认的id_rsa 文件的名称,这里我们加上后缀,标实不同的github账号,输入密码部分可以留空或输入,若输入密码后续git push到远程仓库时均需输入此处设置的密码,方便起见我们使用ssh-agent(详见下文),回车若看到如下图所示,表示生成ssh key 成功了,重复如上操作生成多个ssh key。
进入用户家目录下的.ssh文件目录下,可以看到我们生成的多组key, id_rsa id_rsa.pub分别对应私钥与公钥
2.配置Config文件
为了让git知道我们用哪个账号提交,这里需要配置config文件,在当前家目录 .ssh文件夹下新建config文件,配置如下内容:
# 配置github1
Host github.cleloX.com # 自定义的host简称
# 主机名可用ip也可以是域名
HostName github.com
# 证书文件路径
IdentityFile C:\\Users\\76594\\.ssh\\id_rsa_cleloX
# 认证方式 可以设为 publickey,password publickey,keyboard-interactive
PreferredAuthentications publickey
# 登录用户名
User cleloX
# 配置github2
Host marspie.com
HostName github.com
IdentityFile C:\\Users\\peeka\\.ssh\\id_rsa_marspie
PreferredAuthentications publickey
User git
注意:这样写入配置文件后,在后续使用git的时候可能会报错(控制台会 提示哪一行有错,原因:空行或者注释造成的),可根据提示进行修改
3.配置完以上信息后,做如下修改
原始clone 地址
git@github.com:cleloX/test1.git
git@github.com:marspie/test2.git
新clone地址
git@github.cleloX.com:cleloX/test1.git
git@marspie.com:marspie/test2.git
原有全局账号设置
git config --golbal user.name "name"
git config --golbal user.email "xxx@qq.com"
全局配置账户、邮箱移除
git config --global --unset user.name
git config --global --unset user.email
查看全局用户名、全局邮箱
git config --global user.name
git config --global user.email
然后在具体的工程目录下设置用户及邮箱
如果不设置,在使用命令git commit -m
时候会提示
git config user.name yaonew
git config user.email yaonew@126.com
4.登陆Github添加公钥
分别登陆两个github账号,进入Settings –> SSH and GPG keys,拷贝~/.ssh 下.pub公钥文件内容添加至github
SSH连接测试
ssh -T git@github.cleloX.com
ssh -T git@marspie.com
当看到如上信息时测试成功,同时远端github的钥匙已变成绿色
5.本地git设置
ssh-agent
因为我们生成ssh key设置了密码,每次git push 认证时都需要输入密码,显然这不是我们希望的,ssh-agent是一个密钥管理器,运行ssh-agent以后,使用ssh-add将私钥交给ssh-agent保管,其他程序需要身份验证的时候可以将验证申请交给ssh-agent来完成整个认证过程。
打开 ssh-agent
# github官方的bash
ssh-agent -s
# 其它,比如msysgit
eval $(ssh-agent -s)
添加私钥
添加秘钥时输入密码后续的认证就交由ssh-agent了,直接提交丝般顺滑 _
ssh-add ~/.ssh/id_rsa_cleloX
ssh-add ~/.ssh/id_rsa_marspie
起飞
二、踩坑记录
1.warning: LF will be replaced by CRLF in …
问题:输 入 git add . 后出现
warning: LF will be replaced by CRLF in ......
The file will have its original line endings in your working directory.
原因
原因是路径中存在 / 的符号转义问题,false就是不转换符号默认是true,相当于把路径的 / 符号进行转义,这样添加的时候就有问题
解决方法:
git config --global core.autocrlf false