關卡內容:
把電腦裡的 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。
- 到 github.com 登入,然後按一下右上角的 '+' 號來新增一個 repository。
- 取一個名字,最好和你電腦上的程式名稱一樣,也就是 'hello-world',並且給它一個簡短的說明。
- 設定為 public(公開)。
- 不要勾選 'initialize with a README',因為我們已經在電腦上的版本建立了一個檔案,叫做 'readme.txt'。
- 也不要修改 .gitignore 和 license 的設定,保留原先 'none' 的設定就好。
- 按下 'create 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!
{{{verify_directory_button}}}
撇步
- 新增 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>