问题和答案
-
react脚手架新建的初始react项目目录下有一个.git文件,是什么意思?
- 答:这代表这,该项目已经上传到你的本地仓库里了。
-
如何合并本地仓库和远程仓库?
-
答:强行合并(建议看完下面的解决问题的过程,不要随意尝试)
-
第一步:将本地仓库与远程仓库关联起来(关键)
git remote add origin https://github.com/这里就是你的github仓库的地址.git
-
第二步:pull(拉取)远程仓库的内容,更新本地仓库,并且要使用–allow-unrelated-histories忽略本地仓库和远程仓库的无关性,强行合并(关键)
git pull origin master --allow-unrelated-histories
-
遇到问题的过程
原本想法是,用react脚手架做一个小demo来练习react,并把这个demo传到github上,结果刚建完项目就遇到一个问题:react脚手架新建的初始react项目目录下有一个.git文件,是什么意思?(如下图)
起初并不知道这个.git文件是什么意思,百度好像搜不到这个问题。因此,打算先不管该问题,先把项目上传到github上再说。由于一直以来,我都是用下面这种方式(参考博文:将本地已有的一个项目上传到新建的git仓库的方法中“克隆+拷贝”的方式)来上传项目到github的:
1、在github上建一个仓库
2、在一个空的本地目录下克隆这个github远程仓库
3、把项目的文件移入这个目录
4、git 一顿操作即可
但是!目前我在这个react项目目录下也这么干,这方法却会报错!为什么呢?原来是因为这个react项目早已经上传到我们的本地仓库了!也即是说,我刚才所遇到的问题**“react脚手架新建的初始react项目目录下有一个.git文件,是什么意思?”**的答案是:该react项目已经上传到本地仓库啦!
于是,在阅读了参考博文:将本地已有的一个项目上传到新建的git仓库的方法之后,才知道:对于一个本来就是本地仓库的项目,应该用强行合并本地仓库和远程仓库的方法,来达到合并本地仓库和远程仓库的目的。
解决问题的过程
一、创建项目
首先借助react的脚手架来新建一个项目,我的项目名为tabledemo_infoshow
npx create-react-app tabledemo_infoshow
创建项目这一步时间有点漫长。完成后,此时的目录出现了一个.git文件,就是表示:这个项目已经存放到我的本地仓库里了,但是还没有上传到任何远程仓库当中。接下来,我想把这个项目传到我的github上,也就是把本地仓库和远程仓库合并,百度了一下,csdn找到了一个大佬的博文:参考博文:将本地已有的一个项目上传到新建的git仓库的方法
下面就是参考这篇博文,进行仓库合并的过程
二、强行合并两个仓库
此方法适用于本地项目已经是一个git仓库的情况,这种情况有两种可能:
①手动将本地的项目初始化为一个git仓库;
②像本人这样,用react脚手架创建项目后,项目目录里自动有了一个.git文件
上述两种情况下,项目已经在本地仓库中了,只需强行合并本地仓库和远程仓库即可。由于这两个仓库是完全不同的两个仓库,所以直接pull都会报错,需要在pull的时候假加上–allow-unrelated-histories才可以pull成功。
git pull 命令用于从远程获取代码并合并本地的版本。
具体步骤如下:
如果本地项目已经是一个git仓库了,请直接到第3步开始。
-
新建一个文件夹,然后进入该文件夹下git bash,输入下列命令
该步骤的目的是,把这个文件夹上传到本地仓库
git init
-
在这个文件夹内,放入向要放入的项目文件(就是复制粘贴)
-
把当前文件夹目录下的已有文件,全部上传到刚刚新建的本地仓库中
git add .
-
保存本地仓库,并书写保存信息:
git commit -m "push current files"
-
将本地仓库与远程仓库关联起来(关键)
git remote add origin https://github.com/这里就是你的github仓库的地址.git
-
pull(拉取)远程仓库的内容,更新本地仓库,并且要使用–allow-unrelated-histories忽略本地仓库和远程仓库的无关性,强行合并(关键)
git pull origin master --allow-unrelated-histories
-
如果你的远程仓库是新建的,空的(连README.MD都没有)所以会出现下面的情况,问题不大。
-
把本地仓库的内容push到远程仓库:
git push -u origin master
-
搞定!万事大吉!