最近在准备面试,这两天顺便把git给熟悉了下,基本流程倒是蛮简单的,一看就会。但是实际要把本地已有的代码同步到GitHub新建的仓库上的时候却总是push不成功,明明简单的几个步骤,也是完全找不出毛病,真让人头大。
查了也蛮多的资料,基本都是说要先把远程库pull到本地,然后再进行push就能成功,试了好多遍,还是不能成功。后来,终于有点想通了,其实基本步骤是没毛病的,那么问题可能就出现在,本地库和远程库之所以不能同步上,是不是它们没认出彼此,或者说它们如果按我们正常的直接push或者先clone再push是不是本来就不是相同的git对象来操作的(乱入面向对象思想,有点绕),那么思路就清晰了,我们可以试试把远程端clone的文件,连同.git隐藏文件一起复制到我们的工程根目录(其实这里就是.git文件默认隐藏的所以如果没让它显示的话估计不会复制到)。当然,我们本地先不要进行git操作(即git init)。步骤如下:
1.在GitHub上创建一个新仓库,紧接着复制好对应的链接(https://.../.git)
2.然后进入到我们想托管到GitHub上的工程的根目录下(git Bash进去)
3.将GitHub上我们创建好的仓库(文件)clone下来
4.紧接着的步骤也是正常的操作,我们进入对应的工程根目录里会发现多了一个名字和我们远程库一样的文件夹,这也就是我们已经成功clone到本地了。接着就是重点了,先不要急着把文件剪切到上层目录,我们先进到这个文件夹里面,接着,让隐藏的文件显示出来
看这里,远程库创建的时候的.git文件就出现了,接着我们就把这些文件都剪切到上层目录(也就是我们的工程根目录)
5.那接着就是把我们的文件都添加到我们的本地版本库中了。
git add .
这里大家不知道有没有发现,我们居然没有进行库的创建(git init)就直接进入到了master分支了!
原因就是我们使用了远程库的.git文件,这个文件就是我们进行版本库操作的文件,如果删了它就相当于我们没有存在对应的库了。
6.紧接着我们先将代码提交到本地版本库
git commit -m "commit test"
7.最后我们就可以试试能不能推送到远程版本库即GitHub上了。
git push origin master
这里因为我们一开始先将远程库clone下来了,所以就有对应的origin也就是remote,如果没有这步 操作我们就要先 git remote add origin https://.../.git, 添加对应的远程网址。
Amazing!真的成功了,这时候到github刷新一下对应的仓库页面就会发现我们已经把代码成功的同步上了。这也就是解决了把本地已有的代码推送到GitHub新建仓库上的问题,这可困扰了我一天多!没办法作为菜鸟就是要一步一步踩着坑成长。这也是我的第一篇博客,之前好多时候比如在写一个下载的demo的时候想把下载进度同步到界面也卡了蛮久的时候就想记录一下但都没动手,今天终于动手了哈哈哈, Mark!