---
# System prepended metadata

title: 學員 Github Flow 開心練習站
tags: [git]

---

# 學員 Github Flow 開心練習站

## 所有疑問
＋: 要把pr分支clone在自己專案裡…還是要直接clone到本地分支?還是在15t的main就要先另開develop分支了？
+: main與develop分支進度不同導致main無法合併分支？

## 一、簡介
Github Flow 是一個重要的技能，但偏偏老師不教，如果進公司不想被前輩罵到臭頭，這裡是妳/你唯一翻身的機會 :tada:
## 二、成員 :triumph:
橘子、Watson、郭嘉、郁芳、家銘
## 三、死亡線 :skull:
7/10 12:00
## 四、Task :wrench:
你的業主希望把這份 [CodePen](https://codepen.io/yuhomyan/pen/OJMejWJ) 裡面美美的按鈕變成一個專案！
請你/妳們遵循以下步驟開發一個超迷你專案：
1. 於 GitHub 建立一個公開專案
2. 將所有成員加進協作者
3. 使用以下分支
    a. main
    b. develop
    c. 開發分支
4. 每人認領 3 個按鈕
5. 每個人都在同一支檔案進行開發
6. 使用 BEM + SASS 進行開發
7. 每個人做完 1 個按鈕後必須做以下的事情
    a. Commit
    b. 發 PR (Pull Request)
    c. 需由另外一個成員審核這個 PR
    d. 由審核者將這個 PR 合併
8. 審核者要審核以下項目
    a. 察看 commit 是否合乎規範
    b. 跟提交 PR 的人一起解衝突
    c. 確認是否正確使用 BEM
    d. 在本地端測試 PR 功能是否正常（此時還未合併 PR）
    e. 確認以上都沒問題才合併這個 PR
9. Commit 請遵循 [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/)
10. 檔案產生衝突時請輪流在 Github 跟本地端解決衝突
11. 請想辦法使用到以下的 git 指令，不需要每次都用到
    a. merge
    b. rebase
    c. pull rebase
    d. revert
## 五、禁忌 :no_entry_sign:
* 只限團隊內部成員互相討論及 Google，禁止詢問團隊以外的任何人（妳們就是開發者，你們不會就沒有人會惹）
* 不可使用 Vscode 的 GUI 提交 commit
* 不可使用 Vscode 關於 git 的任何外掛來補助（包括看 git 的線圖）
* 使用 `force push` 的人拖出去斬首 🗡
==:bulb: 完成請交由 阿傑 測試並開 issue 列表，issue 解完才能結案==


---

## 問題
1. develop跟開發分支有什麼差別
2. 

## AJay 提供の小小 tips
1. 每做好一個按鈕，業主就要看到，所以就要執行一次流程
2. 進行 PR 前要審核 7. 的所有細項，並且在本地端 run 功能，確認沒問題才通過，並且由組長合併到 main 裡面
3. 流程一定是 開發分支 -> develop -> main，如果有直接併功能進到 main 的，要回到上一版
4. main 分支一定要是往前的，不會退後
5. 事前的分工很重要，減少衝突發生
6. 審核者可想一下決定在哪個點 run，可以開測試分支 clone 下來 run(??)
8. 接下來可以試著一直看線圖

## Chris 提供の小小 tips
1. 心態上不用怕衝突，遇到衝突就是討論

## 分工
1. 開github：C
2. 分按鈕
![image](https://hackmd.io/_uploads/Hyk0wEbPC.png)

    +：5、7、14
    W：6、12、16
    F：3、9、11
    C：2、8、13
    J：4、10、15

3. 食物鏈
2  3  4  5  6  7  8  9 10 11 
C<-F<-J<-+<-W<-+<-C<-F<-J<-F<-W
說明：C完成2號按鈕，請F監督；F完成3號按鈕，請J監督
==每個人的第三顆按鈕要發PR給阿傑審核==
![74e32efb-f033-4242-a2a6-65a3c06c4cb5 (2) (3)](https://hackmd.io/_uploads/r1uvOEbDR.gif)
Ajay is watching you

## 我們自己的死線？
- [x] 第一個按鈕：7/4 中午12:00以前完成
- [ ] 第二個按鈕：7/5 中午12:00以前完成
- [ ] 第三個按鈕：7/8 中午12:00以前完成


## 一切都是過程🙈
1. 15t 創專案、開分支
- main
- develop
2. ~~自己帳號 fork 15t 然後開開發分支，功能好了發 PR 給 15t develop~~
3. 因為我們就是專案的協作者，所以直接clone 15t專案到本地端開開發分支就可，不需要 fork
4. `git branch button-x`、`git push -u origin button-x`
5. 審核者 ~~用15t 帳號~~ clone PR 的東西在本地 run
6. 可以了就 merge 到 develop
7. develop ~~再發 PR~~ 再併進 main
