从git传项目到github踩雷总结

165 阅读4分钟

记录悲催的传项目过程,浪费我一下午时间呜呜呜----含泪总结,避免以后再犯错:

一、github账号和项目创建流程

1)首先创建自己的github账号,进入Github首页,点击New repository新建自己的项目。

image.png

  • Repository name: 仓库名称(输入名字,最好不要使用中文)

  • Description(可选): 仓库描述介绍

  • Public, Private : 仓库权限(公开共享,私有或指定合作者),!!仓库先选个Public(免得后面没有权限,又去改)

  • Initialize this repository with a README: 添加一个README.md,!! 如果本地项目找那个有read.me就最好不要勾选

  • gitignore: 不需要进行版本管理的仓库类型,对应生成文件.gitignore

  • license: 证书类型,对应生成文件LICENSE

2)创建成功后,copy地址备用

image.png

二、本地项目文件传到远程仓库操作:

1)提交本地项目到本地仓库

① 找到本地项目,右击选择Git Bash Here(前提是已经安装过Git)进入界面

输入命令git init把这个文件夹变成git可管理的仓库

image.png

③ 还可通过**git status来查看当前的状态 **

image.png

④ 然后通过git add . 把目录中所有文件添加到本地仓库,注意空格后有.

image.png

用git commit把项目提交到本地仓库,-m是提交的注释内容

image.png

至此本地仓库的提交完毕

2)连接本地git仓库和github仓库

由于二者的传输是通过ssh加密的,所以连接时需要设置。

① 创建SSH KEY。

先看一下你C盘用户目录下有没有.ssh目录,有的话看下里面有没有id_rsa和id_rsa.pub这两个文件,有就跳到下一步,没有就通过下面命令创建。

$ ssh-keygen -t rsa -C "youremail@example.com" 注意ssh-keygen之间没有空格

② 然后回车,询问保存key的位置,保存默认即可,一直回车(怕忘记不用设置密码)

image.png

这样就创建成功了。

③ 在用户下的.ssh目录下找到id_rsa和id_rsa.pub这两个文件

image.png

④ 登录github,找到右上角的图标,打开点进里面的Settings,再选中里面的SSH and GPG KEYS,点击右上角的New SSH key,然后Title里面随便填,再把刚才id_rsa.pub里面的内容复制到Title下面的Key内容框里面,最后点击Add SSH key,这样就完成了SSH Key的加密。具体步骤也可看下面:

image.png

右击settings,然后:

image.png

image.png

⑤ 关联本地仓库和github上的仓库

在本地仓库中输入:(注意origin后面加的是你Github上创建好的仓库的地址)

$ git remote add origin https://github.com/xxx/xxx.git

3)上传项目到远程github中

由于github现在的默认分支是main,而本地是master分支,如果你传到master的话是两个分支,涉及合并分支的操作

① 统一操作:先拉取远程的main分支的内容

git pull origin main

② 再上传项目


git push -u origin main

image.png

这样就上传成功。

三、另外其他踩雷总结!!

1、如果是传到master分支命令报错:

remote: Permission to xxxxx.git denied to xxx.
fatal: unable to access 'https://github.com/ xxxxx.git/':URL .......

解决:

1、点击项目中的.git文件中的config编辑其中的.git/config中的url:

[remote "origin"]
url = github.com/git的用户名/项目名称
的url改为
url = https://git的用户名@github.com/git的用户名/项目名称

改完后再:

git push -u origin master

2、如果误传到了master分支,涉及合并main和master分支时

1.先给本地分支master改名

$ git branch -M main 

说明:“-M”对分支重命名

2.查看所有分支

$ git branch -a 
* main   
remotes/origin/main   
remotes/origin/master  

3.删除远程分支master

$ git push origin --delete master 
To https://github.com/***/learnOpenGL.git
  - [deleted]         master  

4.确认删除情况

$ git branch -a 
* main   
remotes/origin/main  

5.切换到当前分支main,也就要保留下来的分支

$ git checkout main 
Already on 'main'  

说明:“Already on 'main'”已经说明在当前分支

6.合并分支

$ git merge remotes/origin/main 
fatal: refusing to merge unrelated histories 

说明:拒绝合并,需要忽略这个限制,添加“--allow-unrelated-histories”

$ git merge remotes/origin/main --allow-unrelated-histories 
Merge made by the 'recursive' strategy. 

7.提交修改

$ git push origin main 
Enumerating objects: 34, done. 
Counting objects: 100% (34/34), done. 
Delta compression using up to 8 threads 
Compressing objects: 100% (28/28), done. 
Writing objects: 100% (32/32), 1.46 MiB | 1.03 MiB/s, done. 
Total 32 (delta 1), reused 0 (delta 0), pack-reused 0 
remote: Resolving deltas: 100% (1/1), done. 
To https://github.com/test/learnOpenGL.git 
   76a2889..d34cf75  main -> main  

8.再次查看分支情况

$ git branch -a 
* main   

3、删除远程分支时提示:remote ref does not exist。

先清除远程分支的本地缓存:

git fetch -p origin

4、# 解决使用git时遇到Failed to connect to github.com port 443 after 21090 ms: Couldn‘t connect to server

该问题解决办法的链接来源:来源

先试试是否可以直接github.com?

一、如果不可以,是使用的vpn访问的:

一般出现这种问题都是开过VPN导致的本机系统端口号和git的端口号不一致导致的。

解决办法:

1、查看本机系统端口号:

设置-》网络和Internet-》代理

image.png

2、设置git端口号和上面端口号保持一致

git config --global http.proxy 127.0.0.1:10809

git config --global https.proxy 127.0.0.1:10809

3、查看git设置:

D:\demo>  git config --global -l

  
user.email=xxx@qq.com  
user.name=xxx  
http.proxy=127.0.0.1:10809  
https.proxy=127.0.0.1:10809

4.再次push 或者 pull 即可

(保险起见可以先在cmd窗口中使用 ipconfig/flushdns 刷新dns缓存)。

二、如果没有用VPN,还是遇到上面的问题:

还是一样的原因,两边端口不一致导致的,那么直接去掉git代理即可:

git config --global --unset http.proxy

git config --global --unset https.proxy

再次push 或者 pull 即可(保险起见可以先在cmd窗口中使用 ipconfig/flushdns 刷新dns缓存)。