關卡內容:

把電腦裡的 程式庫repository遠端的remote程式庫repository連結起來,並 推送push 電腦上的修改。

遠端Remotes

當專案傳到 GitHub 上面,它會被儲存在 GitHub 的主機上。這個專案就變成了 遠端的remote 程式庫repository,因為專案現在 GitHub 的主機上也有一份了,所以叫做 遠端remote。當你把電腦上的程式修改 推送push遠端remote,這就叫做同步。

其他人可以透過 收取pull 你的 遠端的remote 程式庫repository 來取得專案的最新版本,儲存到他們的電腦上。這樣一來,大家就可以一起修改同一個專案,而不需要用 USB 或 Email 等其他方式來取得專案的最新進度。

步驟:建立一個 遠端的Remote 程式庫Repository

你想要把電腦上的版本和存在 GitHub.com 上的 遠端的remote 版本做同步。所以我們先在 GitHub 上開啟一個新的 遠端的remote 程式庫repository

Readme(讀我檔案)、.gitignore 和 License(著作權聲明)

在開源軟體中,這些是你將會常常見到的檔案。

讀我檔案readme 通常是用來解釋一個程式的功用、使用方法以及如何貢獻程式碼(但有時候這部份也會另外用一個 CONTRIBUTING.md 來說明)。

忽略檔案表.gitignore 則是要忽略的檔案清單,這是用來告訴 Git,當在做版本控制記錄的時候,不要理會這些檔案。例如,當某個檔案中包含密碼的時候,我們就不希望 Git 記錄它們下來。

License(著作權聲明)是用來聲明一個程式可以、或不可以被怎麼樣的使用。你可以到 choosealicense.com 參考一些範例。

但就現在在做的練習來說,我們暫時不需要著作權聲明。

步驟:把電腦上的 程式庫repository遠端的remote 程式庫repository 連結在一起

現在我們已經在 遠端remote(GitHub 上)新建了一個 程式庫repository。在 程式庫repository 的頁面上你會看到一個 'Quick Setup' 的部份,確認選擇的網址是 'HTTP',而不是 'SSH',右邊的欄位就是這個 遠端的remote 程式庫repository 在 GitHub 主機上的位址。

回到終端機,在我們剛剛初始化過 Git 的 'hello-world' 的資料夾裡頭,我們需要告訴 Git 這個 遠端remote 的位址。同一個 Git 專案中,可以有很多不同的 遠端remote,所以每一個 遠端remote 都需要一個名字。而最主要、原始的那一個,通常都是叫做 origin

$ git remote add origin <URLFROMGITHUB>

你電腦上的 程式庫repository 現在知道了專案有一個在 GitHub 上的 遠端remote,叫做 'origin'。你可以想像這就好像是把一個電話號碼配上一個名字一樣,這樣當你要打電話的時候,就不用記得號碼了。

備註:

如果你有安裝 GitHub for Windows,Git 初始化的時候就會直接設定了一個叫做 'origin' 的 遠端remote,所以你不需要新增,只要設定這個 'origin' 遠端remote 的位址就好了:

$ git remote set-url origin <URLFROMGITHUB>

步驟:把你的修改 推送Push遠端remote

接下來你需要 推送push(傳送)所有你在電腦上做的修改到 GitHub 上的 遠端remote。通常你會希望 遠端remote 的程式版和電腦上的程式版本是一樣的。

Git 有一個 分支branch 系統,讓你可以同時修改一個程式的不同功能,之後會再深入介紹。系統會預設一個名稱給最初的 分支branch,通常就會叫做 'master'。當你 推送push(或之後 收取pull)一個專案的時候,你必須要告訴 Git 你想要的是哪一個 遠端remote 上的哪一個 分支branch 的進度。

也就是說,我們現在想要把 'master' 分支branch 的程式傳送到先前新增的 'origin' 遠端remote

$ git push origin master

完成之後,你現在就可以回到 GitHub 的 程式庫repository 頁面,重新整理。哇哇哇!程式是不是都同步了呢?恭喜你建立了第一個公開的 程式庫repository

確認你完成了所有步驟:

git-it verify

前往下一個關卡:

git-it

撇步