记录悲催的传项目过程,浪费我一下午时间呜呜呜----含泪总结,避免以后再犯错:
一、github账号和项目创建流程
1)首先创建自己的github账号,进入Github首页,点击New repository新建自己的项目。
-
Repository name: 仓库名称(输入名字,最好不要使用中文)
-
Description(可选): 仓库描述介绍
-
Public, Private : 仓库权限(公开共享,私有或指定合作者),!!仓库先选个Public(免得后面没有权限,又去改)
-
Initialize this repository with a README: 添加一个README.md,!! 如果本地项目找那个有read.me就最好不要勾选
-
gitignore: 不需要进行版本管理的仓库类型,对应生成文件.gitignore
-
license: 证书类型,对应生成文件LICENSE
2)创建成功后,copy地址备用
二、本地项目文件传到远程仓库操作:
1)提交本地项目到本地仓库
① 找到本地项目,右击选择Git Bash Here(前提是已经安装过Git)进入界面
② 输入命令git init把这个文件夹变成git可管理的仓库
③ 还可通过**git status来查看当前的状态 **
④ 然后通过git add . 把目录中所有文件添加到本地仓库,注意空格后有.
⑤ 用git commit把项目提交到本地仓库,-m是提交的注释内容
至此本地仓库的提交完毕
2)连接本地git仓库和github仓库
由于二者的传输是通过ssh加密的,所以连接时需要设置。
① 创建SSH KEY。
先看一下你C盘用户目录下有没有.ssh目录,有的话看下里面有没有id_rsa和id_rsa.pub这两个文件,有就跳到下一步,没有就通过下面命令创建。
$ ssh-keygen -t rsa -C "youremail@example.com" 注意ssh-keygen之间没有空格
② 然后回车,询问保存key的位置,保存默认即可,一直回车(怕忘记不用设置密码)
这样就创建成功了。
③ 在用户下的.ssh目录下找到id_rsa和id_rsa.pub这两个文件
④ 登录github,找到右上角的图标,打开点进里面的Settings,再选中里面的SSH and GPG KEYS,点击右上角的New SSH key,然后Title里面随便填,再把刚才id_rsa.pub里面的内容复制到Title下面的Key内容框里面,最后点击Add SSH key,这样就完成了SSH Key的加密。具体步骤也可看下面:
右击settings,然后:
⑤ 关联本地仓库和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
这样就上传成功。
三、另外其他踩雷总结!!
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-》代理
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缓存)。