關卡內容:

把電腦裡的 程式庫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

Please select your repository directory.

撇步

  • 新增 遠端remote 連結
  • git remote add <REMOTENAME>
  • 幫一個 遠端remote 設定位址
  • git remote set-url <REMOTENAME>
  • 收取Pull 遠端remote 的程式
  • git pull <REMOTENAME> <BRANCHNAME>
  • 看你有哪些 遠端remote 連結
  • git remote -v
  • 推送Push 電腦上的程式到 遠端remote
  • git push <REMOTENAME>