参照:https://blog.csdn.net/weixin_36191602/article/details/80946242
参照:https://www.cnblogs.com/superGG1990/p/6844952.html
经实践,确实可行:
$ cd ~/.ssh
$ ssh-keygen -t rsa -C "410958040@qq.com" -f "github_id_rsa"
$ ssh-keygen -t rsa -C "410958040@qq.com" -f "gitee_id_rsa"
实践的过程中其实还有个坑,因为我也是多次实验,一直在试不出来,然后把所有的生成文件删除了重新弄,搞了好久,后面才查出来原因
上面分别是 github和gitee的
但是如果 ~/.ssh目录下没有 id_rsa文件,会一直有问题
因为 ssh可同时支持publickey和password两种授权方式,publickey默认不开启,需要配置为yes。
如果客户端不存在.ssh/id_rsa,则使用password授权;存在则使用publickey授权;如果publickey授权失败,依然会继续使用password授权。
使用上面的命令生成了公钥和私钥,接着把 以.pub结尾的公钥文件内容添加到ssh
在 ~/.ssh
目录下建一个config
文件 touch config
# gitee
Host gitee.com
HostName gitee.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/gitee_id_rsa
# github
Host github.com
HostName github.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/github_id_rsa
最后执行 诸如:ssh -T git@gitee.com
其实就是在 ~/.ssh下生成 known_hosts文件
![](https://img.haomeiwen.com/i4342827/ee6f2a6bd6c5a41f.png)
使用vi 编辑时,在插入状态下, 按 p进行粘贴
使用gitbash克隆远程项目时有时会出现:
fatal:unable to access ': SSL certicate problem: unable to get local issuer certificate
![](https://img.haomeiwen.com/i4342827/0c6824fefbd990c1.png)
这是因为电脑没有安装对应的ca证书,所以无法通过https连接到git服务器。
通过设置git的ssl验证跳过了这个错误(win下):
git config --global http.sslVerify false
git取消某文件暂存区的提交
git rm --cached 文件名
// --cached
// Use this option to unstage and remove paths only from the index. Working tree files, whether modified or not, will be left alone.
git 回滚版本
# 工作区和暂存区的回退
# 情况1,工作区还没有add 到暂存区
git checkout 文件名
# 情况2,工作区已经add 到了暂存区,此时先让暂存区reset head一次,也就是让暂存区回前一次状态
git reset HEAD # 执行完reset head后,就和情况1一样了
git log #查看历史记录 ,如果历史记录很多,按箭头上下翻,冒号号输入英文q退出
git reset --hard 版本号
# 如果已经回滚了版本,现在又后悔了,不想回滚,此时工作区已经是历史版本,git log查看历史版本时,
# 只会显示该历史版本以前的版本,此时要用 git reflog查看
git reflog
# 快速的回到上一个版本
git reset --hard HEAD^
git 分支
# 创建并切换分支
git checkout -b dev # 相当于 git branch dev git checkout dev
git checkout master
git merge dev # 将dev合并到master
网友评论