關卡內容:
在你的 fork 新增 branch。
Branches
Git repositories 用 branches 來隔離進度。當需要跟其他人一起進行專案時,在你完成負責的部份之前,經常需要利用 branch 來保護你對程式所做的修改。如此,你就可以讓主要的 'master' branch 保持穩定,不被未完成的修改影響。等到你完成在 branch 上的修改,就可以把它 merge 回 'master' branch。
在 GitHub Guide 中我們有提供解釋 branches 運作方式的示意圖:guides.github.com/overviews/flow
GitHub Pages
GitHub 會自動發佈你放在 'gh-pages' branch 裡的靜態檔案,並架設一個網站。由於你 forked 的專案內容是一個網站,所以它的預設 branch 是 'gh-pages' 而不是 'master'。而你會發現這些網站,網址都長得像這樣:
http://githubusername.github.io/repositoryname
步驟:新增 branch
當你新增 branch 的時候,Git 會拷貝目前 branch 上所有的檔案到新的 branch。
在終端機輸入 git status
可以知道目前你在哪個 branch(應該會在 'gh-pages')。
新增一個 branch 並命名為「add-<username>」,請用你的帳號名稱替換掉 'username'。例如「add-jlord」。Branches 的名字有分大小寫,所以請確定輸入的帳號名稱跟 GitHub 上顯示的一模一樣。
$ git branch <BRANCHNAME>
水啦!你擁有了一個全新、內容跟 'gh-pages' 一模一樣的 branch!
就像終端機去另一個資料夾的指令 cd
一樣,請 checkout
到剛才新增的 branch:
$ git checkout <BRANCHNAME>
步驟:新增檔案
接下來我們回到文字編輯器:
- 新增一個檔案並命名為 「add-<USERNAME>.txt」,請用你的帳號名稱替換 'username',像這樣,「add-jlord.txt」。
- 在檔案裡寫下你的 GitHub 帳號名稱。例如,我就會寫 'jlord'。
- 將檔案存到在 Patchwork 裡的 'contributors' 資料夾: Patchwork/contributors/add-yourusername.txt
- 接著,把你的修改記錄下來!
步驟:紀錄
按照以下的步驟,把剛才的修改用 Git 記錄下來:
$ git status
$ git add <FILENAME>
$ git commit -m "<commit message>"
Push 剛才記錄好的修改到 GitHub 上,你 forked 的 repository 裡頭:
$ git push origin <BRANCHNAME>
確認你完成了所有步驟:
git-it verify
前往下一個關卡
git-it
git-it verify
的時候沒有通過?
File NOT in contributors folder
剛才新增的檔案應該要放到 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 <NEWBRANCHNAME>
完成以上的動作之後,再執行一次 git-it verify
!
撇步
- 只用一個指令就新增並切換到新的 branch
$ git checkout -b <BRANCHNAME>
- 新增 branch
$ git branch <BRANCHNAME>
- 切換到另一個 branch
$ git checkout <BRANCHNAME>
- 列出所有的 branches
$ git branch
- 重新命名目前所在的 branch
$ git branch -m <NEWBRANCHNAME>
- 看目前正在哪個 branch
$ git status