Win下Git关联Gitbub出现的问题主要是与连接方式有关,大部分踩坑的原因也都是这块,本文会一步一步地总结步骤并分析可能出现的问题及其解决方案。
第1步:配置SSH Key(仅限SSH连接,使用HTTP连接可从第二步开始)。
ssh-keygen -t rsa -C "youremail@163.com"
youremail@163.com换成自己的邮箱 一路enter即可
可以在用户主目录里找到.ssh目录,里面有id_rsa和id_rsa.pub两个文件,这两个就是SSH Key的秘钥对,id_rsa是私钥,不能泄露出去,id_rsa.pub是公钥。接下来使用使用vim辅助公钥的内容复制到自己的Gitbub ssh Key中
vi ~/.ssh/id_ras.pub
这里可以使用
ssh -T git@github.com
测试是否配置好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 "xxx@163.com"
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 git@gitbub.com:lion6cheng/MADDPG-torch.git
2 http连接方式
git remote add origin https://github.com/lion6cheng/MADDPG-torch.git
之后需要手动登录自己的github确认身份
查看远程仓库内容
git remote -v
origin git@github.com:unlimitbladeworks/Data-Struts-Learning.git (fetch)
origin git@github.com: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
可以在自己的github主页上看到 因为美国黑人弗洛伊德问题,认为master是黑人歧视运动的敏感词汇,现在github上的主分支用main取代了master。无语ing
有问题欢迎留言评论我都会积极回答
|