## 3.1.1\. 新版本庫即是新項目
在GitHub,一個項目對應唯一的Git版本庫,創建一個新的版本庫就是創建一個新的項目。訪問儀表板(Dashboard)頁面,如圖3-1,可以看到關注的版本庫中已經有一個,但自己的版本庫為零。在顯示為零的版本庫列表面板中有一個按鈕“New Repository”,點擊該按鈕開始創建新版本庫。
[](https://box.kancloud.cn/2015-07-09_559de28541b71.png)
圖3-1:版本庫列表面板
新建版本庫的界面如圖3-2所示。
[](https://box.kancloud.cn/2015-07-09_559de28606de3.png)
圖3-2:創建新項目
我們為新建立的版本庫命名為“helloworld”,相應的項目名亦為“helloworld”,創建完畢后訪問項目頁,提示版本庫尚未初始化,并給出如何初始化版本庫的幫助,如圖3-3所示。
[](https://box.kancloud.cn/2015-07-09_559de287b84c9.png)
圖3-3:項目尚未初始化
在圖3-3中可以看到訪問協議增加了一個支持讀寫的SSH協議,訪問地址為:git@github.com:gotgithub/helloworld.git。注意任何GitHub用戶均可使用該URL訪問此公開版本庫,但只有版本庫建立者gotgithub具有讀寫權限,其他人只有只讀權限。在初始化版本庫之前,最好先確認是否是用正確的公鑰進行認證,如下:
~~~
$ ssh -T git@github.com
Hi gotgithub! You've successfully authenticated, but GitHub does not provide shell access.
~~~
## 3.1.2\. 版本庫初始化[]
如果是從頭創建版本庫,可以采用先克隆,建立提交數據,最后再通過推送完成GitHub版本庫的初始化。步驟如下:
* 克隆版本庫。
克隆過程會顯示警告,不過這個警告可以忽略,因為GitHub創建的版本庫本來就是一個空白的版本庫。
~~~
$ git clone git@github.com:gotgithub/helloworld.git
Cloning into 'helloworld'...
warning: You appear to have cloned an empty repository.
~~~
* 創建文件README.md(注:以擴展名.md,.mkd,.mkdn,.mdown,.markdown等為結尾的文件,均以Markdown標記語言語法進行解析并顯示。)。
下面是一段示例文字,把這段文字保存為文件README.md,該文件的內容將會直接顯示在項目首頁中(顯示效果參見后面的圖3-5)。
~~~
# 我的第一個GitHub項目
這是項目 [helloworld](https://github.com/gotgithub/helloworld) ,
歡迎訪問。
這個項目的版本庫是 **Git格式** ,在 Windows、Linux、Mac OS X
平臺都有客戶端工具可以訪問。雖然版本庫只提供Git一種格式,
但是你還是可以用其他用其他工具訪問,如 ``svn`` 和 ``hg`` 。
## 版本庫地址
支持三種訪問協議:
* HTTP協議: `https://github.com/gotgithub/helloworld.git` 。
* Git協議: `git://github.com/gotgithub/helloworld.git` 。
* SSH協議: `ssh://git@github.com/gotgithub/helloworld.git` 。
## 克隆版本庫
操作示例:
$ git clone git://github.com/gotgithub/helloworld.git
~~~
上面這段文字采用Markdown格式,您也可以使用其他支持的格式,只要確保README文件使用正確的擴展名。本書附錄部分介紹了Markdown及其他GitHub支持的標記語言。關于Markdown,目前我們只需知道這一個易于識別和理解的純文本格式,可以方便的轉換為HTML。Markdown語法非常像我們在寫郵件(純文本)時用空行來分隔段落、用星號開啟列表、用縮進表示引用內容等等。
* 添加README.md文件并提交。
~~~
$ git add README.md
$ git commit -m "README for this project."
~~~
* 向GitHub推送,完成版本庫初始化。
~~~
$ git push origin master
~~~
然后查看GitHub上新建項目的首頁。項目首頁的上半部分可見版本庫包含了一個新的提交,以及版本庫目錄樹中包含的文件,如圖3-4所示。
[](https://box.kancloud.cn/2015-07-09_559de28bddef2.png)
圖3-4:完成推送后的項目首頁上半部分
在項目首頁的下半部分,會看到README.md文件被轉換為HTML顯示,如圖3-5所示。
[](https://box.kancloud.cn/2015-07-09_559de28e5cf29.png)
圖3-5:完成推送后的項目首頁下半部分
## 3.1.3\. 從已有版本庫創建
如果在GitHub項目初始化之前,數據已經存在于本地版本庫中,顯然像上面那樣先克隆、再提交、后推送的方法就不適宜了。應該采用下面的方法。
為試驗新的版本庫初始化方法,先把剛剛新建的測試項目“helloworld”刪除,同時也將本地工作區中克隆的“helloworld”刪除。警告:刪除項目的操作非常危險,不可恢復,慎用。
* 點擊項目首頁中項目名稱旁邊的“Admin”按鈕進入項目管理頁,再點擊頁面最下方的刪除版本按鈕,如圖3-6所示。
[](https://box.kancloud.cn/2015-07-09_559de28fab801.png)
圖3-6:刪除項目
* 然后再重建版本庫“helloworld”,如本章一開始圖3-2所示。
接下來使用下面的步驟完成“helloworld”版本庫的初始化。
* 本地建立一個Git版本庫。
~~~
$ mkdir helloworld
$ cd helloworld
$ git init
~~~
* 然后在版本庫中添加示例文件,如README.md文件,內容同前。
~~~
$ git add README.md
$ git commit -m "README for this project."
~~~
* 為版本庫添加名為origin的遠程版本庫。
~~~
$ git remote add origin git@github.com:gotgithub/helloworld.git
~~~
* 執行推送命令,完成GitHub版本庫的初始化。注意命令行中的-u參數,在推送成功后自動建立本地分支與遠程版本庫分支的追蹤。
~~~
$ git push -u origin master
~~~
- 前言
- 1. 探索GitHub
- 1.1. 什么是GitHub
- 1.2. GitHub亮點
- 1.3. 探索GitHub
- 2. 加入GitHub
- 2.1. 創建GitHub賬號
- 2.2. 瀏覽托管項目
- 2.3. 社交網絡
- 3. 項目托管
- 3.1. 創建新項目
- 3.2. 操作版本庫
- 3.3. 公鑰認證管理
- 3.4. 版本庫鉤子擴展
- 3.5. 建立主頁
- 4. 工作協同
- 4.1. Fork + Pull模式
- 4.2. 共享版本庫
- 4.3. 組織和團隊
- 4.4. 代碼評注
- 4.5. 缺陷跟蹤
- 4.6. 維基
- 5. 付費服務
- 5.1. GitHub收費方案
- 5.2. GitHub企業版
- 6. GitHub副產品
- 6.1. GitHub:Gist
- 6.2. 其他版本控制工具支持
- 6.3. 客戶端工具
- 6.4. 其他
- 7. 附錄:輕量級標記語言
- 貢獻者列表