如今大多數開發者都有本身的GitHub帳號,不少公司也會以是否有GitHub做爲一項篩選簡歷以及人才的選項了,可見擁有一個GitHub帳號的重要性,本文就從最基本的GitHub帳號的註冊到基本的使用進行學習記錄,一方面方便本身,另外一方面但願對你有所幫助~html
以前寫過一篇文章,淺談使用git 進行版本控制(博客連接:http://www.javashuo.com/article/p-bkqkadox-gs.html)git
說實話,當時是學習可視化的時候,接觸到git ,學了些皮毛,可是本身在實踐中並無真正的用到GitHub這個平臺。那時候在大學,還無憂無慮的,可是一年後,也就是今天,我在家裏寫了代碼,可是在公司也想寫,才發現了GitHub的好處了,今天火燒眉毛的使用了這個東西,而且把一些筆記記錄下來。github
GitHub是用於版本控制和協做的代碼託管平臺,它可讓您和其餘人在任何地方協同工做。GitHub 能夠託管各類Git版本庫,並提供一個web界面,但與其它像 SourceForge或Google Code這樣的服務不一樣,GitHub的獨特賣點在於從另一個項目進行分支的簡易性。web
爲一個項目貢獻代碼很是簡單:首先點擊項目站點的「fork」的按鈕,而後將代碼檢出並將修改加入到剛纔分出的代碼庫中,最後經過內建的「pull request」機制向項目負責人申請代碼合併。已經有人將GitHub稱爲代碼玩家的MySpace。windows
本文將學習使用GitHub基本知識,如存儲庫,分支,提交和Pull請求,我將建立本身的hello world存儲庫並學習GitHub的Pull Request工做流,這是一種建立和檢查代碼的流行方法。學習
一個庫一般用於舉辦單個項目,存儲庫能夠包含文件夾和文件,圖像,視頻,電子表格和數據集等等,你的項目須要的任何內容,咱們認爲包括README或者包含項目信息的文件。GitHub能夠在建立新存儲庫的同時輕鬆添加一個。this
以下圖所示:咱們能夠添加一個新的倉庫,而且添加描述,最後單擊Create repository。url
分支是一次處理不一樣版本的存儲庫的方法。設計
默認狀況下,咱們的存儲庫有一個名爲master的分支branch,該分支被認爲是權威分支。咱們在使用分支進行試驗並在提交以前進行編輯master。3d
當你在分支機構上建立master 分支時,咱們正在製做該master時間點的副本或者快照,若是其餘人master在咱們的分支機構上工做時對branch作了更改,則能夠提取這些更新。
在GitHub,咱們的開發人員,編寫人員和設計人員使用分支來保持錯誤修復和功能工做與咱們的master分支分開,當更改準備就緒時候,他們講其分支合併到master。
如今咱們有兩個分支,master和readme-edits,他們看起來同樣,可是時間不會很長,接下來咱們增長咱們的改變在新的分支上。
如今咱們在readme-edits分支的代碼視圖中,這是一個master的副本,讓咱們作一些修改吧。
Pull Requests是GitHub上合做的核心,當咱們打開拉取請求時候,你提出了更改並請求某人審覈並提取咱們的貢獻,並將其合併到他們的分支中,拉請求顯示來自於兩個分支的內容的差別。
最後將咱們的更改結合在一塊兒,將咱們的readme-edits分支合併到master分支上。
那麼請記住下面的地址:
若是沒有安裝,請查看windows的安裝博客(這裏不作詳細介紹):http://www.javashuo.com/article/p-gsbsoypn-ev.html
在當前項目工程下履行這個號令,至關於把當前項目git化
在當前項目的目錄中生成本地的git管理(咱們會發現當前目錄下多了一個.git文件夾)
把當前目次下代碼參加git的跟蹤中,意思就是交給git經管,提交到本地庫
這個是將項目上全部的文件添加到倉庫中,若是隻想添加某個特定的文件,只須要將.換成特定的名稱便可。
(下面會報錯,咱們發現add 和.之間有空格)
至關於寫點提交信息
表示咱們對此次提交的註釋,雙引號裏面的內容能夠根據我的的需求改
這裏本身找本身的url地址
git remote add origin https://本身的倉庫url地址
下面展現本人的:
將本地庫提交到github上。
執行完畢後,若是沒有異常,會等待幾秒,而後跳出一個讓咱們輸入Username 和password的窗口,咱們只須要輸入我的的github登陸帳號和密碼便可。
最後上傳完畢
當你上傳代碼到最後一步,發現沒法push,而且會出現以下錯誤:
那麼如何解決呢?
上傳代碼到最後一步,出現此錯誤,如何解決呢?(就是沒法匹配master)
引發該錯誤的緣由是,目錄中沒有文件,空目錄是不能提交上去的
。
這個仔細檢查,本地的文件名稱是否和GitHub上的對應。個人就是由於名字不對應致使的錯誤,也就是本身粗心!!!
其二,就是以前沒有使用以下代碼:
git add .
沒有對代碼進行跟蹤,我找了兩天,才發現本身每次都少了這一步,也會報一樣的錯誤,很是粗心!!!
上傳代碼到最後一步,出現此錯誤,如何解決呢?
引發該錯誤的緣由是,咱們在GitHub中對代碼進行了在線的修改;或者咱們直接在GitHub上的某個庫照片那個添加了readme文件或者其餘文件,可是沒有對本地庫進行同步,因此這時候咱們要想commit到remote 的GitHub庫中就會有push失敗的問題,
這個問題就是由於遠程庫與本地庫不一致形成的,咱們只須要把遠程庫同步到本地庫就能夠了。指令以下:
git pull --rebase origin master
git pull –rebase origin master意爲先取消commit記錄,而且把它們臨時 保存爲補丁(patch)(這些補丁放到」.git/rebase」目錄中),以後同步遠程庫到本地,最後合併補丁到本地庫之中。
如圖所示:
而後再上傳,指令以下:
git push -u origin master
結果如圖所示(此時解決問題):