从0开始使用Git:Win10下使用Git配置并关联Gitbub远程仓库全教程与踩坑分析

Win下Git关联Gitbub出现的问题主要是与连接方式有关,大部分踩坑的原因也都是这块,本文会一步一步地总结步骤并分析可能出现的问题及其解决方案。

第1步:配置SSH Key(仅限SSH连接,使用HTTP连接可从第二步开始)。

ssh-keygen -t rsa -C "[email protected]"

[email protected]换成自己的邮箱
一路enter即可

可以在用户主目录里找到.ssh目录,里面有id_rsa和id_rsa.pub两个文件,这两个就是SSH Key的秘钥对,id_rsa是私钥,不能泄露出去,id_rsa.pub是公钥。接下来使用使用vim辅助公钥的内容复制到自己的Gitbub ssh Key中

vi ~/.ssh/id_ras.pub

从0开始使用Git:Win10下使用Git配置并关联Gitbub远程仓库全教程与踩坑分析_第1张图片
这里可以使用

ssh -T [email protected]

测试是否配置好SSH
如果看到

Hi lion6cheng! You've successfully authenticated, but GitHub does not provide shell access.

说明配置完成

第二步 初始化自己代码仓库做好push的本地项目

首先在自己的项目根目录使用

git init

完成初始化

添加文件并提交:

git add -A 

这个- A会提交目录下全部文件们,平时使用更建议单独add
add 会把文件、变动 添加到缓存区,之后我们还需要commit才行 这里默认commit到master目录。但是在commit之前要先告诉Git你的身份

git config --global user.email "[email protected]"
git config --global user.name "xxx"

记得替换自己的信息
然后就可以提交了

git commit -m 'init'

第三步 关联远程仓库

首先在Github上创建一个新的项目,例如MADDPG-torch

将本地Git仓库和远程仓库关联起来,并设置远程仓库名称:

在此处要引入一个知识,git 远程仓库两种协议在解决问题之前,先要了解git远程仓库的两种协议连接:ssh和http

1)ssh方式:这是一种相对安全的方式

这要求将本地的公钥上传到gitlab中,如下图:
全面我们已经配置好ssh,接下来使用关联

git remote add origin [email protected]:lion6cheng/MADDPG-torch.git

2 http连接方式

git remote add origin https://github.com/lion6cheng/MADDPG-torch.git

之后需要手动登录自己的github确认身份

查看远程仓库内容

git remote -v
origin [email protected]:unlimitbladeworks/Data-Struts-Learning.git (fetch)
origin [email protected]:unlimitbladeworks/Data-Struts-Learning.git (push)

显示上面的内容

如果需要重新配置的话,需要移除掉远程仓库的配置

$ git remote rm origin

完事以上切换操作,就可以开始push了

第四步 push代码并关联

$  git push origin master -u

由于远程库是空的,我们第一次推送master分支时,加上了-u参数,Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令

问题一般都在这一步出现比如

ssh: connect to host github.com port 22: Connection timed out
fatal: Could not read from remote repository.

又或者

fatal: unable to access 'https://github.com/lion6cheng/MADDPG-torch.git/': OpenSSL SSL_read: Connection was reset, errno 10054

或许

fatal: unable to access 'https://github.com/lion6cheng/MADDPG-torch.git/': Failed to connect to github.com port 443: Timed out

解决方案

$ git config --global http.proxy 127.0.0.1:1080

$ git config --local http.proxy 127.0.0.1:1080

git config --global http.proxy 127.0.0.1:1080 为全局的 git 项目都设置代理

git config --local http.proxy 127.0.0.1:1080 为某个 git 项目单独设置代理

修改git config

vi ~/.ssh/config

将下面内容粘贴进去

Host github.com
Hostname ssh.github.com
Port 443

:wq保存

然后从新push

$  git push origin master -u

从0开始使用Git:Win10下使用Git配置并关联Gitbub远程仓库全教程与踩坑分析_第2张图片
可以在自己的github主页上看到
从0开始使用Git:Win10下使用Git配置并关联Gitbub远程仓库全教程与踩坑分析_第3张图片
因为美国黑人弗洛伊德问题,认为master是黑人歧视运动的敏感词汇,现在github上的主分支用main取代了master。无语ing

有问题欢迎留言评论我都会积极回答

你可能感兴趣的:(git,github,ssh)