Git是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理,是开发必备的版本控制工具。Git安装有多种形式,推荐使用homebrew命令安装,前置操作:
ps:官网(https://git-sm.com/download/)上有很多安装方式,也可以结合具体场景选一个合适的。
基于homebrew安装的相关命令:
# 安装最新版本的git工具
brew install git
# 查看git版本,返回正确版本号则说明安装成功
git --version
# 扩展命令,查询git安装路径
which git
登陆远程仓库,查看用户名和邮箱。例如,如果使用的github,可以在Settings中查看账号和邮箱:
如果在公司内,一般使用内部仓库的登陆账号和官方邮箱。
设置username和e-mail的命令如下:
git config --global user.name "xxx"
git config --global user.email "xxx@mock.com"
这个命令,会在“~/.gitconfig”中以如下形式输出设置文件:
[user]
name = Firstname Lastname
email = your_email@example.com
设置完成后,执行命令查看设置:
git config --global -l
#或
git config --list
连接已有仓库时的认证,是通过使用了 SSH 的公开密钥认证方式进行的。为此,需要创建公开密钥认证所需的 SSH Key,用来连接远程仓库。
在终端中执行以下语句,判断是否已经存在本地公钥。如果返回一长串以 ssh-ed25519 或 ssh-rsa 开头的字符串, 说明已存在本地公钥,你可以跳过「生成 SSH 密钥」步骤:
# ED25519算法
cat ~/.ssh/id_ed25519.pub
# RSA算法
cat ~/.ssh/id_rsa.pub
# ECDSA算法
cat ~/.ssh/id_ecdsa.pub
如果不存在本地公钥,则需要生成新的ssh 密钥。在终端执行运行ssh-keygen -t,然后输入密钥算法类型和可选的注释(注释与认证无关,会出现在.pub文件中,一般可使用邮箱作为注释内容)。以RSD 密钥对为例,命令如下:
# 如果不想添加注释的话,输入下面的命令,一路回车即可。
ssh-keygen -t rsa
# 如果需要注释的话,输入下面的命令,不要带空格、不要带空格、不要带空格
ssh-keygen -t rsa -C "<注释内容>" #注意:注释内容不要带空格
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/your_user_directory/.ssh/id_rsa): # 设置文件路径,按回车键使用默认路径
Enter passphrase (empty for no passphrase): # 认证口令,不想设置就回车
Enter same passphrase again: # 再次输入认证口令,不想设置就回车
私有密钥默认生成路径:/home/user/.ssh/id_rsa,公钥与之对应为:`/home/user/.ssh/id_rsa.pub`。
过程中还可以使用口令保护私钥文件,设置之后每次访问都需要输入口令,建议一路回车敲到底。
在仓库中添加公开密钥,之后就可以用私有密钥进行认证了。
id_rsa.pub的内容可以使用cat命令查看:
cat ~/.ssh/id_rsa.pub
# 输出内容
# ssh-rsa 公开密钥的内容 your_email@example.com
或者打开公钥文件,复制密钥信
或者执行如下命令,复制信息到剪贴板:
# macOs
tr -d '\n' < ~/.ssh/id_rsa.pub | pbcopy
# GNU/Linux(requires xclip)
xclip -sel clip < ~/.ssh/id_rsa.pub
# Windows(在Git Bash 或者 WSL 下)
cat ~/.ssh/id_rsa.pub | clip
# 输出内容
# ssh-rsa 公开密钥的内容 your_email@example.com
以github仓库为例,点击右上角的账户设定按钮(Settings),选择 SSH Keys 菜单。点击 Add SSH Key ,在 Title 中输入适当的密钥名称,Key 部分粘贴 id_rsa.pub 文件里的内容即可:
完成以上设置后,就可以用手中的私人密钥与 GitHub 进行认证和 通信了。测试连接:
ssh -T git@github.com
The authenticity of host 'github.com (207.97.227.239)' can't be established. RSA key fingerprint is fingerprint值 .
Are you sure you want to continue connecting (yes/no)? # 输入yes
# 出现以下结果即为成功
Hi hirocastest! You've successfully authenticated, but GitHub does not provide shell access.
接着就可以在本机终端,使用git clone命令拉取项目了。
git相关操作参考:Git 常用操作