Git
介绍
Git 是分布式版本控制系统(Distributed Version Control System - DVCS)。官网:https://git-scm.com/docs
- Workspace:工作区
- Index / Stage:暂存区
- Repository:本地仓库
- Remote:远程仓库
配置单个 SSH-Key
全局配置用户信息
git config --global user.name "your_name"
git config --global user.email "your_email"
# 查看全局的用户名
git config --global user.name
# 查看全局的邮箱
git config --global user.email
生成 SSH 密钥
ssh-keygen -t rsa -C "youremail@email.com"
在 Mac 终端里查看密钥:vim ~/.ssh/id_rsa.pub
,然后将公共密钥添加进 github 或者 gitlab 里。或者直接复制密钥:
pbcopy < ~/.ssh/id_ras.pub
测试连接是否成功: ssh -T git@github.com
如果提示:Hi Ivanzgh! You've successfully authenticated, but GitHub does not provide shell access.
说明连接成功了
查看当前仓库配置信息:
git config --local --list
查看全局配置信息:
git config --global --list
配置多个 SSH-Key
如果想将个人的 GitHub 密钥和公司的密钥区分开来,就需要配置多个 SSH Key
1. 删除本地的 SSH
这个步骤不是必需的,如果想全部重来就可以使用。打开终端输入 cd ~/.ssh
,如果顺利进入到 .ssh
文件夹,使用命令:
cd ..
rm -r .ssh
2. 清空默认的用户名和邮箱
查看已配置的 git 列表 git config --list
如果没有默认的用户名和邮箱就忽略,否则执行以下命令重置:
git config --global --unset user.name
git config --global --unset user.email
3. 创建新的 SSH
打开终端输入cd ~/.ssh
,如果没有 .ssh
目录,先创建该目录
mkdir ~/.ssh
在 .ssh
目录下生成 ssh-key
,填入自己的邮箱地址
ssh-keygen -t rsa -C "youremail@email.com"
然后会要输入 SSH key 的名字,如 id_rsa
、id_rsa_github
随你自定义,然后不要输入密码,一直回车就行。
然后配置其他的 SSH Key,如 gitlab,邮箱也可以变更:
ssh-keygen -t rsa -f ~/.ssh/id_rsa_gitlab -C "youremail@email.com"
然后同上要输入名字,一路回车
4. 将私钥添加到 ssh-agent 信任列表
ssh-add ~/.ssh/id_rsa
如果出现 Identity added: /Users/zgh/.ssh/id_rsa (youremail@email.com)
,表示添加成功了。
继续添加另一个ssh-add ~/.ssh/id_rsa_gitlab
关于ssh-agent
信任列表:
# 查看信任列表
ssh-add -l
# 清空所有的ssh key
ssh-add -D
5. 配置 config 文件
终端输入 open ~/.ssh/
,看看有没有 config 文件,文件没有后缀,如果没有就新建一个。
新建 config 文件:
cd ~/.ssh
touch config
然后可以在终端修改 vim config
,也可以直接打开 config 文件修改,Mac 下通过文本编辑打开。
cd ~/.ssh
vim config
内容如下:
Host github
HostName github.com
User git
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa
Host gitlab
HostName gitlab.com
User git
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa_gitlab
- 以
#
开头的是注释,会被忽略 Host
: 机器别名,用于标识特定的配置HostName
: 主机名,一般为 ip 或者主机域名IdentityFile
: 私钥证书文件位置,默认位置是~/.ssh/id_rsa
,如果采用默认证书,可不填此项User
:用于连接的用户名Port
: SSH 访问主机的端口号,默认是 22 端口
6. 将公钥添加到远程仓库
将公钥复制到剪贴板,然后去添加到各个远程仓库
pbcopy < ~/.ssh/id_rsa.pub
# gitlab
# pbcopy < ~/.ssh/id_rsa_gitlab.pub
查看公钥内容:vim ~/.ssh/id_rsa.pub
7. 测试连接
ssh -T git@github.com
如果 config 配置的用户名是其他的,如 zgh,那么在 @
后面还需加上用户名,克隆的时候也需要加上
ssh -T git@zgh.github.com
然后在不同的仓库下设置局部的用户名和邮箱
git config user.name "yourname"
git config user.email "youremail"