在你本地的 forked repository 新增一個 branch。

分支(Branches)

Git repositories 用 branches 來分隔進度。當需要跟其他人一起進行專案時,在你完成負責的部份之前,經常需要利用 branch 來保護你對程式所做的修改。如此,你就可以讓主要的「master」 branch 保持穩定,不被未完成的修改影響。等到你完成在 branch 上的修改,就可以把它合併(merge)回「master」 branch。

這張圖告訴你,你要如何切換到其他分支、修改,並合併回「master」分支,甚至你不一定要以「master」為基底。

A diagram showing a horizontal line, representing the master branch, with another line branching off the top and later re-joining the original. Another line branches off the master branch line from below and yet another branch branches off of that. Both of these meet back up with the original master line, too.

在 GitHub 導覽中有張不錯的示意圖,解釋在專案中 branches 是如何運作的:guides.github.com/overviews/flow

GitHub Pages

GitHub 會自動發佈你放在「gh-pages」 branch 裡的靜態檔案,並架設一個網站。這個免費服務叫做 GitHub Pages。如果你要為你 forked 的專案建立一個網站,它的預設 branch 是「gh-pages」而不是「master」。而你會發現所有含有「gh-pages」分支的 repository,他們的網址都長得像這樣:

http://githubusername.github.io/repositoryname

新增一個 branch

當你新增 branch 的時候,Git 會拷貝目前 branch 上所有的檔案到新的 branch。

在終端機輸入 git status 可以知道目前你在哪個 branch(現在應該會在「gh-pages」)。

新增一個 branch 並命名為「add- 」,請用你的帳號名稱替換掉 'username'。例如「add-jlord」。Branches 的名字有分大小寫,所以請確定輸入的帳號名稱跟 GitHub 上顯示的一模一樣。

git branch

現在,你擁有了一個全新、內容跟 'gh-pages' 一模一樣的 branch!

如果要切換到另一個 branch 工作,你可以用 checkout。切換到剛剛新增的 branch:

git checkout

新增一個檔案

回到你的文字編輯器:

  • 新增一個檔案並命名為 「add-.txt」,請用你的帳號名稱替換 'username',像這樣,「add-jlord.txt」。
  • 在檔案裡寫下你的 GitHub 帳號名稱。例如,我就會寫「jlord」。
  • 將檔案存到在 Patchwork 裡的「contributors」資料夾: Patchwork/contributors/add-yourusername.txt
  • 接著,把你的修改記錄下來!

紀錄修改

按照以下的步驟,把剛才的修改用 Git 記錄下來:

git status

git add

git commit -m " "

Push 剛才記錄好的修改到 GitHub 上,你 forked 的 repository 裡頭:

git push origin

Please select your repository directory.

拒絕存取...error: 403

你正試著把修改 push 到一個你沒有寫入權限的 repository。在這裡,你可能推到原本的 repository (jlord/patchwork)了,請確定你的 push 的目的是 origin,且 origin 是指向你 fork 的專案的 GitHub 網址。你可以透過 git remote -v來檢查所有的 remote 指向哪裡,你應該要有一個「origin」指向你 fork 的 repository 及一個「upstream」指向原始的 repository。

如果 remote 指向錯誤的網址,你可以用 git remote set-url 來修改網址。

剛才新增的檔案應該要放到 Patchwork repository 的 'contributors' 資料夾裡。如果不小心放到別的地方,請打開 Finder 或是 Windows 的檔案總管將該檔案移到 'contributors' 資料夾,然後可以用 git status 看你剛才移動檔案之後所造成的結果。用以下的指令 Stage 並且 commit 全部的修改(加上 -A,會將新增檔案跟刪除檔案的動作一起記錄下來):

git add -A

git commit -m "move file into contributors folder"

Branch name expected: _____

Branch 的名字應該要跟你的帳號名稱一模一樣。用以下的指令修改 branch 的名字:

git branch -m

完成以上的動作之後,再重新 verify!

  • 只用一個指令就新增並切換到新的 branch
  • git checkout -b
  • 新增 branch
  • git branch
  • 切換到另一個 branch
  • git checkout
  • 列出所有的 branches
  • git branch
  • 重新命名目前所在的 branch
  • git branch -m
  • 看目前正在哪個 branch
  • git status