什么是GitHub
每當了解一個新玩意的時候首先我想知道的總是這玩意到底是個啥。GitHub嘛,不就是為開發者提供 Git 倉庫的托管服務嘛,同時你可以分享你的倉庫給任何人,通俗來說,大致上就像一個可以查文件修改歷史的網盤。你可以不斷得提交你修改的文件(這里的文件可以是你寫的小說啊,你制作的視頻啊,你偷藏的電子書啊,還可以是你辛辛苦苦抹的代碼),同時可以恢復到舊的版本。還可以邀請其他人來和你一起改你的文件。差不多就是這么個簡單的玩意兒。當然,在你了解了之后會發現,他還有很多666的功能。OK,我來附上官方網址,大家可以先看看這哥們的樣子。另外這里有GitHub被玩壞的LOGO。
什么是Git
Git 屬于分散型版本管理系統,是為版本管理而設計的軟件。它是由Linux 的創始人 Linus Torvalds 在 2005 年開發了的原型程序發展而來。其性能和功能自然沒的說,用過的基佬都說好~
注冊使用GitHub
去官方網址注冊就好了沒啥特別說明的地方。注冊之后包括倉庫、分支的創建等官方都給出了圖文教程,這里不再贅述。雖然是英文版的,但是希望大家能耐著性子看看(已經熟悉的同學可以直接忽略),更多官方教程可以看這里。
安裝Git
扯了半天沒用的,趕緊進入正題,要想使用GitHub,首先我們需要安裝Git,MAC和linux系統不必多說了,一般現在的系統都是默認安裝Git,我就只說一下windows的安裝,首先當然是下載Git for windows(或者從這里下載也可以),下載完成后安裝,這里對幾個安裝選項進行簡單的說明,配置好一路next,最后點擊install就完成安裝了(下圖是我在安裝時勾選的選項)。
使用Git
初始設置
設置姓名和郵箱(該設置會在~/.gitconfig中生成配置,并且在提交時會被公開哦~):
//設置姓名
git config --global user.name "L.T.Any"
//設置郵箱
git config --global user.email "linetoanywhere@gmail.com"
//設置輸出內容高亮
git config --global color.ui auto
設置SSH Key
使用GitHub連接到已有倉庫時,需要使用SSH的公鑰進行認證,因此我們需要在本地創建一對密鑰,本地Git Bash上執行如下:
創建好SSH Key后,我們需要把它導入到GitHub中去,具體導入過程見下圖:
導入完成后我們可以簡單測試一下是否可用,具體檢驗方法如下:(當出現Hi 。。。。 access這樣的輸出時說明可用)
至此,SSH Key設置完成。
下載并使用代碼倉庫
創建好代碼倉庫后就可以將他們下載到本地來進行編輯修改了。在GitHub上進入倉庫頁,選擇Clone or Download,這里可以選擇使用https或者SSH,由于我們設置了SSH,因此選擇SSH,復制地址,打開git,切換到目標目錄,并執行如下命令。
//克隆倉庫內容到本地
git clone git@github.com:LineToAnyWhere/LineToAnyWhere.github.io.git
此時倉庫已經下載到本地,這時我們可以修改內容,然后在本地倉庫中添加更改,之后提交更改。可以在內容更改后執行如下命令來在本地提交更改:
//添加更改后的文件到倉庫中,當然也可以直接添加目錄
git add xxx.html //添加單個文件到目錄
git add . //添加當前目錄中的文件
//提交更改的內容
git commit -m "修改部分代碼" //只有在執行完add后才可以提交更改,參數-m 后可以跟上此次提交的備注
到這里本地的更改已經可以由本地倉庫來進行管理了,如果你需要在多個地點維護你的代碼,這時候你就需要將你的代碼提交到遠程倉庫,這里可以提交到GitHub上。
//提交本地倉庫到GitHub
git push
當然,我們可以在任何時候查看我們的提交歷史記錄,或者是查看當前倉庫的狀態
//查看提交歷史紀錄
git log
//查看當前倉庫狀態
git status
這里我給大家一個全套執行的示例
GitHub快捷鍵
在GitHub上很多頁面都有快捷鍵,各個頁面查看快捷鍵的方式是按下shift+/。
GitHub使用流程
1.一般流程
- 在GitHub上進行Fork
- 將fork的倉庫克隆至本地
- 在本地環境中創建分支
- 修改分支代碼并提交至本地
- push代碼到fork的倉庫中
- 在GitHub上對Fork來源的倉庫發送Pull Request
2.不Fork的開發流程
- 共用一個遠程倉庫
- 使用不同賬戶clone項目到本地
- 創建分支修改本地代碼并提交
- push到遠程倉庫
- 在GitHub上合并分支
3.GitHub flow流程
- 令 master 分支時常保持可以部署的狀態
- 進行新的作業時要從 master 分支創建新分支,新分支名稱要具有描述性
- 在新建的本地倉庫分支中進行提交
- 在 GitHub 端倉庫創建同名分支,定期 push
- 需要幫助或反饋時創建 Pull Request,以 Pull Request 進行交流
- 讓其他開發者進行審查,確認作業完成后與 master 分支合并
- 與 master 分支合并后立刻部署
4.Git flow流程
- 從開發版的分支(develop)創建工作分支(feature branches),進行功能的實現或修正
- 工作分支(feature branches)的修改結束后,與開發版的分支(develop)進行合并
- 重復上述流程,不斷實現功能直至可以發布
- 創建用于發布的分支(release branches),處理發布的各項工作
- 發布工作完成后與 master 分支合并,打上版本標簽(Tag)進行發布
- 如果發布的軟件出現 BUG,以打了標簽的版本為基礎進行修正(hotfixes)
Gist
Gist A 是一款簡單的 Web 應用程序,常被開發者們用來共享示例代
碼和錯誤信息。其功能有些像簡單的,可共享的備忘錄,共享時只需將需要共享內容的URL發送給要共享的人即可,共享者之間還可以互相評論留言。當然,他本身也是在Git版本控制的管理之下,可以隨時可以查看修改的歷史記錄,他還支持多種代碼高亮。感興趣的朋友可以試試,這里不再贅述。
GitHub的GUI客戶端##
其他提供類似GitHub功能的開源軟件
更多
本文僅僅展示了最簡單的GitHub和git的使用方法,此后會不定期在此文章上更新一些GitHub功能的使用方法,至于Git會另寫一篇文章專門說明Git這個命令的各種參數用法。這里為大家推薦兩本書,一本講述了GitHub的詳細使用,書名《GitHub入門與實踐》,作者是[日]大塚弘記。另一本是高級Git的使用方法,書名《Pro Git》,不過目前這本書沒有中文版,大家也可以參考《Git版本控制管理(第2版)》。另外《Pro Git》的英文版是可以從Git的官網下載PDF的。