入門github常見問題總結:

1.當輸入 git push -u origin master的時候,提示:origin does not to be a git repository如何解決?

緣由:本地倉庫和遠程倉庫沒有相關聯。
解決方案:先關聯本地倉庫和遠程倉庫,再從新push就能夠啦~使用下面的命令git

git remote add origin git@github.com:yourusername/test.git
git push origin master

2.當push代碼git push -u origin master 時出現The authenticity of host 'github.com ' can't be established,如何解決?

通常有下面兩個緣由:github

  • 緣由一:github上的遠程倉庫沒有和本地倉庫關聯(是否是發現很眼熟~對的,和問題一屬於同一款)
  • 緣由二:ssh 不對

針對上面的兩個緣由,分別給出解決方案:ssh

解決方案:spa

  • 方案一:不厭其煩再來一遍
git remote add origin git@girhub.com:yourusername/test.git
  • 方案二:ssh解決思路分爲三步走code

    步驟一:查看ssh是不是本身的,若不是本身的,說明是ssh的問題,如果,則爲遠程關聯問題。查看命令爲:對象

    cat ~/.ssh/id_rsa.pub

    步驟二:如果ssh的問題,則在git倉庫同目錄刪除.ssh文件夾(隱藏文件夾),使用查看命令查看是否刪除成功教程

    cat ~/.ssh/id_rsa.pub

    若出現No such file or directiory字樣,說明刪除成功索引

    步驟三:從新建立ssh,使用下面的命令ci

    ssh-keygen -t -rsa -C "your_email@exmaple.com"

    而後一路回車~rem

    建立好新的ssh後,將pub文件中的內容複製,在github上新建一個ssh連接吧~

3.使用git pull origin master提示refusing to merge unrelated histories如何解決?

緣由:遠程倉庫和本地倉庫在沒有關聯以前,是兩個單獨的項目,因此須要項目合併
解決方案:pull的時候先合併

git pul -allow-unrelated-histories

合併完以後在git pull origin master就ok啦~

4.附上經典Git原理圖(摘自廖學峯的git教程)

  • 工做區:就是直接包含本地代碼文件的文件夾。
  • 暫存區:是暫存add進來的代碼,也稱爲stage或index。
它實際上就是一個包含文件索引的目錄樹,像是一個虛擬的工做區。
在這個虛擬工做區的目錄樹中,記錄了文件名、文件的狀態信息(時間戳、文件長度等)。
但文件的內容並不存儲其中,而是保存在Git對象庫(.git/objects)中,裏面包含了建立的各類對象及內容。
當add文件到暫存區時,暫存區的目錄樹會被更新(index文件更新),同時工做區修改(或新增)的文件內容被寫到對象庫(.git/objects)的一個新對>象中,而該對象的ID被記錄在暫存區的文件索引中。
stage區和本地倉庫均存儲在.git文件夾內。
  • 版本庫:當前倉庫下,若是沒有任何的提交,那麼版本庫就是對應上次提交後的內容。commit以後合併到本地倉庫的分支(如master)。
HEAD 實際是指向 master 分支的一個"遊標"。
當執行 git reset HEAD 命令時,暫存區的目錄樹會被重寫,被 master 分支指向的目錄樹所替換,可是工做區不受影響。
相關文章
相關標籤/搜索