在你本地的 forked repository 新增一個 branch。
分支(Branches)
Git repositories 用 branches 來分隔進度。當需要跟其他人一起進行專案時,在你完成負責的部份之前,經常需要利用 branch 來保護你對程式所做的修改。如此,你就可以讓主要的「master」 branch 保持穩定,不被未完成的修改影響。等到你完成在 branch 上的修改,就可以把它合併(merge)回「master」 branch。
這張圖告訴你,你要如何切換到其他分支、修改,並合併回「master」分支,甚至你不一定要以「master」為基底。

在 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-
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
拒絕存取...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