上午在学习廖雪峰老师的 git 教程(http://www.liaoxuefeng.com/),在添加远程仓库这一节中遇到了两个问题:
问题描述:
一、关联自己的远程仓库。
fatal: Not a git repository (or any of the parent directories): .git
二、将本地库的内容推送到远程仓库。
! [rejected] master -> master (fetch first)
error: failed to push some refs to 'git@github.com:lixinjie1992/studygit.git'
问题分析:
问题一:
错误提示为 not a git repository 没有 git 仓库,即为 git 找不着你的仓库。原来我忽略了最重要的一步,没有进入 git 目录(该不会有人像我这样傻吧)。
问题二:
将本地仓库的内容推送到远程仓库时会发出警告。这是因为 Git 使用 SSH 连接,而 SSH 连接在第一次验证 GitHub 服务器的 Key 时,需要你确认 GitHub 的 Key 的指纹信息是否真的来自 GitHub 的服务器,输入 yes
回车即可。
我这里输入 yes 确认,然后一会儿有报错了, rejected! failed to push... 这两句话没有实质意义。但是后面提示是 hint: Updates were rejected because the remote contains work that you do... 我这才发现,当我在 github 上创建仓库时,生成了一个 readme.md 文件,然而本地没有这个文件,导致了这个问题,百度了一下,找到了解决办法(https://zhidao.baidu.com/question/520358893388315405.html)。
问题解决:
问题一:
在关联自己的远程仓库之前,我们一定要先进入自己的 git 目录,然后在关联。
$ cd studygit
$ git remote add origin git@github.com:lixinjie1992/studygit.git
git@github.com:lixinjie1992/studygit.git 是路径,可以在 .git 文件夹下的 config 文件中查看,其中 lixinjie1992 是我的 github 账户名。
问题二:
在本地也生成一个 readme.md 文件,然后在将本地内容推送到远程仓库。
$ git pull --rebase origin master
$ git push -u origin master
pull = fetch + merge,先从 github 上取来,然后在合并上去。好比我们在家写了很好的文章,然后去图书馆借了用来写文章的工具(或纸),把我们写的文章誊抄到专用的纸上后,放到图书馆,让这个比较放心的图书馆仓库帮我们保管我们辛苦写的文章。