上午在學習廖雪峰老師的 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 上取來,然后在合並上去。好比我們在家寫了很好的文章,然后去圖書館借了用來寫文章的工具(或紙),把我們寫的文章謄抄到專用的紙上后,放到圖書館,讓這個比較放心的圖書館倉庫幫我們保管我們辛苦寫的文章。