1. git 配置用户名、邮箱、SSH公钥
git 设置 用户名和邮箱:
git config --global user.name "xxx"
git config --global user.email "xxx"
如果不加
--global则只设置当前仓库的用户名和邮箱
git 查看 用户名和邮箱:
git config user.name
git config user.email
为了避免每次提交时输入密码,应该把本地的 ssh 公钥放在远程 git 服务中。
怎么查看电脑的 ssh 公钥:
ssh-keygen生成 ssh 公钥和私钥,路径默认为~/.ssh,密码可不输直接回车。(如果电脑已经有 .ssh 目录可省略这一步)cd ~/.ssh进入 .ssh 目录id_rsa是私钥;id_rsa.pub是公钥,把公钥内容复制到远程 git 服务器中
2. git clone 时提示权限错误
报错信息:
$ git clone ssh://git@gitee.xxx.com/express-mock.git
Cloning into 'express-mock'...
git@gitee.xxx.com: Permission denied (publickey).
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
解决方案:
这是因为
OpenSSH的版本问题,具体解决步骤:
- 重新配 ssh 公钥,如果公钥已经配过且没有过期,此步可省略
cd ~ // 进入根目录 rm -rf .ssh // 递归强制删除目录 git config --global user.name "xxx" // 配置用户名 git config --global user.email "xxx" // 配置邮箱 git config --list // 查看配置列表 ssh-keygen // 重新生成 ssh key然后把公钥配置在远程仓库中,公钥位置:
~/.ssh/id_rsa.pub![]()
- 关键一步,更改 ssh 的配置文件,在
~/.ssh/config中加上如下配置:Host gitee.com HostkeyAlgorithms +ssh-rsa PubkeyAcceptedAlgorithms +ssh-rsa
3. 以 ssh 方式 git clone 时出现报错
报错信息:
fetch-pack: unexpected disconnect while reading sideband packet
fatal: early EOF
fatal: fetch-pack: invalid index-pack output
解决方案:
此时可以以 http 的方式 clone 仓库:
git clone http://gitee.xxx.com/xxx.git然后进入仓库,更改远程地址:
git remote set-url origin ssh://git@gitee.xxx.com/xxx.git git remote -v // 查看是否更改成功还是不要更改远程地址为 ssh 的了,因为改完之后 git pull 会报错:
fatal: protocol error: bad pack header
就先用 http 的方式吧
3. 更改 clone 仓库的用户名密码
对于 Windows 系统,打开 凭据管理器,点击 Windows 凭据,把目标仓库的记录删除或编辑即可。