W3Cschool
恭喜您成為首批注冊用戶
獲得88經驗值獎勵
如果不想經歷自己架設 Git 服務器的麻煩,網絡上有幾個專業(yè)的倉庫托管服務可供選擇。這樣做有幾大優(yōu)點:托管賬戶的建立通常比較省時,方便項目的啟動,而且不涉及服務器的維護和監(jiān)控。即使內部創(chuàng)建并運行著自己的服務器,同時為開源項目提供一個公共托管站點還是有好處的 — 讓開源社區(qū)更方便地找到該項目,并給予幫助。
目前,可供選擇的托管服務數(shù)量繁多,各有利弊。在 Git 官方 wiki 上的 Githosting 頁面有一個最新的托管服務列表:
https://git.wiki.kernel.org/index.php/GitHosting
由于本書無法全部一一介紹,而本人(譯注:指本書作者 Scott Chacon。)剛好在其中一家公司工作,所以接下來我們將會介紹如何在 GitHub 上建立新賬戶并啟動項目。至于其他托管服務大體也是這么一個過程,基本的想法都是差不多的。
GitHub 是目前為止最大的開源 Git 托管服務,并且還是少數(shù)同時提供公共代碼和私有代碼托管服務的站點之一,所以你可以在上面同時保存開源和商業(yè)代碼。事實上,本書就是放在 GitHub 上合作編著的。(譯注:本書的翻譯也是放在 GitHub 上廣泛協(xié)作的。)
GitHub 和大多數(shù)的代碼托管站點在處理項目命名空間的方式上略有不同。GitHub 的設計更側重于用戶,而不是完全基于項目。也就是說,如果我在 GitHub 上托管一個名為 grit
的項目的話,它的地址不會是 github.com/grit
,而是按在用戶底下 github.com/shacon/grit
(譯注:本書作者 Scott Chacon 在 GitHub 上的用戶名是 shacon
。)。不存在所謂某個項目的官方版本,所以假如第一作者放棄了某個項目,它可以無縫轉移到其它用戶的名下。
GitHub 同時也是一個向使用私有倉庫的用戶收取費用的商業(yè)公司,但任何人都可以方便快捷地申請到一個免費賬戶,并在上面托管數(shù)量不限的開源項目。接下來我們快速介紹一下 GitHub 的基本使用。
首先注冊一個免費賬戶。訪問 Pricing and Signup 頁面 http://github.com/plans
并點擊 Free acount 里的 Sign Up 按鈕(見圖 4-2),進入注冊頁面。
圖 4-2. GitHub 服務簡介頁面
選擇一個系統(tǒng)中尚未使用的用戶名,提供一個與之相關聯(lián)的電郵地址,并輸入密碼(見圖 4-3):
圖 4-3. GitHub 用戶注冊表單
如果方便,現(xiàn)在就可以提供你的 SSH 公鑰。我們在前文的"小型安裝" 一節(jié)介紹過生成新公鑰的方法。把新生成的公鑰復制粘貼到 SSH Public Key 文本框中即可。要是對生成公鑰的步驟不太清楚,也可以點擊 "explain ssh keys" 鏈接,會顯示各個主流操作系統(tǒng)上完成該步驟的介紹。 點擊 "I agree,sign me up" 按鈕完成用戶注冊,并轉到該用戶的 dashboard 頁面(見圖 4-4):
圖 4-4. GitHub 的用戶面板
接下來就可以建立新倉庫了。
點擊用戶面板上倉庫旁邊的 "create a new one" 鏈接,顯示 Create a New Repository 的表單(見圖 4-5):
圖 4-5. 在 GitHub 上建立新倉庫
當然,項目名稱是必不可少的,此外也可以適當描述一下項目的情況或者給出官方站點的地址。然后點擊 "Create Repository" 按鈕,新倉庫就建立起來了(見圖 4-6):
圖 4-6. GitHub 上各個項目的概要信息
由于尚未提交代碼,點擊項目地址后 GitHub 會顯示一個簡要的指南,告訴你如何新建一個項目并推送上來,如何從現(xiàn)有項目推送,以及如何從一個公共的 Subversion 倉庫導入項目(見圖 4-7):
圖 4-7. 新倉庫指南
該指南和本書前文介紹的類似,對于新的項目,需要先在本地初始化為 Git 項目,添加要管理的文件并作首次提交:
$ git init
$ git add .
$ git commit -m 'initial commit'
然后在這個本地倉庫內把 GitHub 添加為遠程倉庫,并推送 master 分支上來:
$ git remote add origin git@github.com:testinguser/iphone_project.git
$ git push origin master
現(xiàn)在該項目就托管在 GitHub 上了。你可以把它的 URL 分享給每位對此項目感興趣的人。本例的 URL 是 http://github.com/testinguser/iphone_project
。而在項目頁面的摘要部分,你會發(fā)現(xiàn)有兩個 Git URL 地址(見圖 4-8):
圖 4-8. 項目摘要中的公共 URL 和私有 URL
Public Clone URL 是一個公開的,只讀的 Git URL,任何人都可以通過它克隆該項目??梢噪S意散播這個 URL,比如發(fā)布到個人網站之類的地方等等。
Your Clone URL 是一個基于 SSH 協(xié)議的可讀可寫 URL,只有使用與上傳的 SSH 公鑰對應的密鑰來連接時,才能通過它進行讀寫操作。其他用戶訪問該項目頁面時只能看到之前那個公共的 URL,看不到這個私有的 URL。
如果想把某個公共 Subversion 項目導入 Git,GitHub 可以幫忙。在指南的最后有一個指向導入 Subversion 頁面的鏈接。點擊它會看到一個表單,包含有關導入流程的信息以及一個用來粘貼公共 Subversion 項目連接的文本框(見圖 4-9):
圖 4-9. Subversion 導入界面
如果項目很大,采用非標準結構,或者是私有的,那就無法借助該工具實現(xiàn)導入。到第 7 章,我們會介紹如何手工導入復雜工程的具體方法。
現(xiàn)在把團隊里的其他人也加進來。如果 John,Josie 和 Jessica 都在 GitHub 注冊了賬戶,要賦予他們對該倉庫的推送權限,可以把他們加為項目協(xié)作者。這樣他們就可以通過各自的公鑰訪問我的這個倉庫了。
點擊項目頁面上方的 "edit" 按鈕或者頂部的 Admin 標簽,進入該項目的管理頁面(見圖 4-10):
圖 4-10. GitHub 的項目管理頁面
為了給另一個用戶添加項目的寫權限,點擊 "Add another collaborator" 鏈接,出現(xiàn)一個用于輸入用戶名的表單。在輸入的同時,它會自動跳出一個符合條件的候選名單。找到正確用戶名之后,點 Add 按鈕,把該用戶設為項目協(xié)作者(見圖 4-11):
圖 4-11. 為項目添加協(xié)作者
添加完協(xié)作者之后,就可以在 Repository Collaborators 區(qū)域看到他們的名單(見圖 4-12):
圖 4-12. 項目協(xié)作者名單
如果要取消某人的訪問權,點擊 "revoke" 即可取消他的推送權限。對于將來的項目,你可以從現(xiàn)有項目復制協(xié)作者名單,或者直接借用協(xié)作者群組。
在推送或從 Subversion 導入項目之后,你會看到一個類似圖 4-13 的項目主頁:
圖 4-13. GitHub 上的項目主頁
別人訪問你的項目時看到的就是這個頁面。它有若干導航標簽,Commits 標簽用于顯示提交歷史,最新的提交位于最上方,這和 git log
命令的輸出類似。Network 標簽展示所有派生了該項目并做出貢獻的用戶的關系圖譜。Downloads 標簽允許你上傳項目的二進制文件,提供下載該項目各個版本的 tar/zip 包。Wiki 標簽提供了一個用于撰寫文檔或其他項目相關信息的 wiki 站點。Graphs 標簽包含了一些可視化的項目信息與數(shù)據(jù)。默認打開的 Source 標簽頁面,則列出了該項目的目錄結構和概要信息,并在下方自動展示 README 文件的內容(如果該文件存在的話),此外還會顯示最近一次提交的相關信息。
如果要為一個自己沒有推送權限的項目貢獻代碼,GitHub 鼓勵使用派生(fork)。到那個感興趣的項目主頁上,點擊頁面上方的 "fork" 按鈕,GitHub 就會為你復制一份該項目的副本到你的倉庫中,這樣你就可以向自己的這個副本推送數(shù)據(jù)了。
采取這種辦法的好處是,項目擁有者不必忙于應付賦予他人推送權限的工作。隨便誰都可以通過派生得到一個項目副本并在其中展開工作,事后只需要項目維護者將這些副本倉庫加為遠程倉庫,然后提取更新合并即可。
要派生一個項目,到原始項目的頁面(本例中是 mojombo/chronic)點擊 "fork" 按鈕(見圖 4-14):
圖 4-14. 點擊 "fork" 按鈕獲得任意項目的可寫副本
幾秒鐘之后,你將進入新建的項目頁面,會顯示該項目派生自哪一個項目(見圖 4-15):
圖 4-15. 派生后得到的項目副本
關于 GitHub 就先介紹這么多,能夠快速達成這些事情非常重要(譯注:門檻的降低和完成基本任務的簡單高效,對于推動開源項目的協(xié)作發(fā)展有著舉足輕重的意義。)。短短幾分鐘內,你就能創(chuàng)建一個新賬戶,添加一個項目并開始推送。如果項目是開源的,整個龐大的開發(fā)者社區(qū)都可以立即訪問它,提供各式各樣的幫助和貢獻。最起碼,這也是一種 Git 新手立即體驗嘗試 Git 的捷徑。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: