不會用 git ,就不能用 github 嗎? 不是這樣的。Github 的網站上通過網頁操作就已經能實現很多強大的版本控制功能了,來一起看一看。
從註冊開始
來到 http://github.com 的首頁,就可以看到下面的註冊界面:
填寫自己的用戶名郵箱,再設置一個妥妥的密碼,點擊 Sign up for Github
按鈕,世界就屬於你了。對於開源項目 github 是免費的,所以不用管付費相關的內容。接下來初次註冊的用戶會看到一共四步的 github 使用教程。
今天主要介紹第二步,其他幾步回頭另行介紹。所以這個四步走,稍微看一下,關了就行了。以後可以到http://help.github.com 找到這些內容。另外你可能還會看到要求新用戶去驗證一下郵箱地址的提示,這個簡單,到郵箱之中找到驗證郵件,點一下里面的鏈接就可以了。
最後一步來給自己添加一個頭像吧,github 是一個真正的交朋友的地方,每次你發評論或者寫代碼都是代表一個活生生的人格。
登錄後的用戶都可以找到”設置“的圖標,一個小齒輪,點一下,默認看到的就是 Profile
(個人信息),選擇圖片上傳就可以了。
創建項目倉庫
Github 上操作雖多,但是都是圍繞一個個的項目展開的。
一個項目其實就是一個文件夾,裏面放着所有的項目文件,可以是代碼,也可以是任意的文檔。但是在 github 這裏,每一個項目都不僅僅是最新版本的代碼,還保持着所有的歷史版本和修改記錄,當然這個後臺就是通過 Git 來實現的。Github 上的項目有一個新名稱,叫 ”倉庫“ ( repository )。說白了,一個倉庫就是一個用 git 進行了版本控制的項目。
點一下頁面左上角的小貓圖標,就可以到達 dashboard (控制面板),這個詞本來的意思是汽車上的儀表板,日常所有的操作都在這裏做。
下圖左側,圖標1處,可以看到相關項目的最近更新,右側圖標2處,是我自己的項目列表。現在我要創建一個項目,要點3處這個按鈕。
這就到達了新建項目的頁面:
注意要勾選 Initialize this repository with a README
,然後創建這個項目。也會看到 Create
Repository
按鈕的上方還有兩個選擇框,一個是關於 .gitignore
的,另一個是關於 LICENSE
的。這兩項如果選擇了就是在項目中又多了兩個文本文件,一個是
.gitignore 文件,另一個是 LICENSE 文件,暫時都不選就可以,回頭需要了可以自己用編輯器新建。
編輯項目
創建項目完成後,就會跳轉到 https://github.com/happypeter/coco 這個頁面。這裏的幾乎每一個可以點的地方都會涉及到一個新概念,不用着急,後面咱們都會介紹到。先來瞄準一個最爲重要的,叫 commit,如圖中所指:
每次項目修改後,點擊 commit
按鈕就可以生成一個新的版本。commit 英文的基本意思是執行某個重要的事情,例如 commit suicide,自我了斷。但是在 git 這裏,做動詞講的時候是保存版本,當名詞講就是版本。
現在就來編輯一下。點擊上面圖中,項目名 coco
右側的加號,進入下面界面。
來新建一個文件叫 love.md
,在標號1處。填寫文件內容,標號2處。下面 Commit
new file
部分填寫的是“版本留言”( commit message ),說明一下爲什麼要做這次修改,一方面是跟隊友溝通的一種形式,另一方面如果項目版本多了,自己也可以用這個留言來定位特定的一次修改。標號3處填寫一個一行的留言,標號4處可以寫詳細留言,這一項是可選的。 最後,點擊 Commit
new file
按鈕,一個新版本就做好了。
順便提一下,github 的頁面編輯器是經過特殊強化的,用起來非常舒服。點下圖1處,可以進入全屏模式,編輯後還可以用2處的 Preview changes
預覽一下修改內容。
自動跳轉回項目頁面之後,會發現原來 1 commit
的地方,現在已經變成了下圖所示的 2
commits
2 commits
是個鏈接,點進入就進入了項目歷史的頁面。
現在看到歷史上有兩個版本,點開上面的一個版本,或者說一個 commit,就可以看到一個 commit 所包含的信息了。
最重要的是 版本號
( commit id )。每個 commit 都有一個,是一個40位16進制數,可以用來定位每個版本。注意一下地址欄中 url 的格式,以後只要是拿到了一個版本號,就可以照貓畫虎的敲上面這樣的鏈接來查看這次的修改的詳細內容了,方便吧?!
一個 commit (版本)中最核心的內容就是這4個 w
了,誰( who )在什麼時間( when )改了那些內容( what ),最後一個是爲什麼要改( why ),這個是版本留言發揮的作用。
一條歷史線
所有 commit(版本) 組成了一條歷史線。那麼這條線是怎麼串起來的呢?隨便打開一個項目,打開具體一個 commit,通常會看到下圖的內容:
上面顯示了當前版本號( commit id ),但是同時還顯示了它之前的一個 commit 的版本號,也就是它的“父版本”( parent ) 的版本號。底層原理是這樣,一個 commit 內部是保存了它的 parent 的版本號的,這樣就把它和它爹連在了一起,爹還有自己的爹,就會形成下圖的一條歷史線。
有些版本工具是以 1,2,3… 作爲版本號的,但是 git 這裏每個版本號都是40位十六進制數,表面看起來稍微麻煩一些,但是實際上妙用無窮。
總結
暫時只是介紹了最爲核心的版本控制功能的一部分,更多強大的功能,後面繼續介紹。