Github连接本地仓库问题解决
一.问题背景
由于之前开发都是用的公司的gitlab,太久没用自己个人的github仓库,再重新将git链接至个人github的repository时出现了诸多问题,将解决方案记录如下,给同样遇到问题的朋友提供一些思路。
- 本次处理问题的前提是之前有在本地与github建立过SSH连接,且项目有git经历
- 如果首次使用,大家可以参考Git的使用–如何将本地项目上传到Github文章来进行学习本地Git仓库和Github仓库之间的HTTP/SSH传输方式设置等内容
二.操作流程与问题记录
1. 查看并解除本地仓库与之前仓库建立的链接
- 在本地仓库上传的过程中可能会遇到以下错误:remote origin already exist
这说明远程仓库已经存在,需要修改远程仓库地址的话可以根据下述步骤进行修改(如果不是想更新远程仓库地址,想处理这个BUG的话请参考remote origin already exist解决方法解决问题)
-
首先进入需要解决问题的项目(仓库)文件夹,在空白处右键点击Git Bash
如果在文件管理器开启现实隐藏文件夹的情况下仍然没有出现.git文件夹,那么该项目没有git过 -
可以先键入
ssh -T git@github.com
命令,查看是否链接成功,出现下图类似语句表示本地已经有SSH链接,不用管but后面的话。 -
之后键入
git remote -v
命令,出现已经链接过的远程地址git@gitlab.suncaper.net:2018070828/user_profile.git
-
发现与之前公司gitlab的该项目仓库地址一样
-
此时我们来删除这个项目的远程仓库地址,键入
git remote rm origin
命令,之后可再次用这个命令或者git remote -v
命令来验证
2. 建立新的远程仓库链接
- 在github该项目的远程仓库下,找到ssh地址
- 键入命令
git remote add origin git@github.com:Cheny1m/user_profile.git
,其中git@github.com:Cheny1m/user_profile.git是你对应的ssh方式下的github远程地址,完成后可以再验证一下
- 建立远程连接时报错 fatal: not a git repository (or any of the parent directories): .git
使用git init进行初始化
3.将本地项目上传到个人github仓库中
- 先commit
3.1 从Git Bash中上传项目
- 在项目位置打开Git Bash,并通过下述命令推送
git push -u origin master
由于新建的远程仓库是空的,所以要加上-u这个参数,等远程仓库里面有了内容之后,下次再从本地库上传内容的时候就不需要了
- 在push的过程中可能会出现***client_loop: send disconnect: Connection reset by peer***的错误,初步判断是当推送大量数据时(初始推送大型存储库,使用非常大的文件进行更改)可能需要http.postBuffer 在 git 客户端 (而不是服务器)上设置更高的设置。故将 Git 缓冲区大小增加到 repo 的最大单个文件大小:
git config --global http.postBuffer 157286400
问题得到解决
3.2 从IDEA上传项目
- 打开IDEA,按下图所示push
出现下图所示,其中master是分支名字,是可以修改的,但是github限制不能上传到github仓库的主分支里面(defult为main),确定之后就可以push了
push成功之后,IDEA会出现提示
- 在github仓库中查看并合并项目到主(main)分支
之后打开pull requests
,请求将master
分支 merge tomain分支
,此处步骤如果有不熟悉的朋友请参考github官方使用指南进行操作。 - 在合并的过程中可能出现如下情况:
-
解决方法1:
在setting
中切换主分支为master
分支,并删除main
分支;
同时回到IDEA中,进行push,在push过程中将分支名改为main
(一定要在github中删除main
分支,不然会push失败)
此时再在github的setting中修改主分支为main
,并删除master
分支即可
-
三.结语
-
此时项目的远程仓库从gitlab到github的修改就全部完成了,而且将本地项目上传至了个人github上
-
此外,如果gitlab和github用的相同邮箱注册,还将同步commit记录
-
之后还将出两篇博客专门讲gitlab和github之间项目的迁移以及如何同时在一台主机上配置github和gitlab两个账号
-
转载请注明出处;如果文章有任何的问题,欢迎与我取得联系Email:cym.work@foxmail.com.