# Git Rebase+GitHub flow 流程 20220210 廖洧杰 video:https://youtu.be/ZCHLOP26glc ## 大綱 1. 介紹 rebase 語法,[示範網頁](https://learngitbranching.js.org/?NODEMO=&locale=zh_TW) 2. rebase 與 merge 的差異 * merge:多一個 commit 4. 發 PR 申請合併 * PR也會有一個 commit 紀錄 ## 情境模擬 1. 無衝突([網址](https://learngitbranching.js.org/?gist_level_id=dfdbbd15bb08cd726e63a7ecf5764882&locale=zh_TW)):遠端沒有 commit,直接發 PR,並申請合併 2. 無、有衝突([網址](https://learngitbranching.js.org/?gist_level_id=14b362ec9d20ba72314d254ca685bfdb&locale=zh_TW)):遠端直接 merge,遠端有新 commit,本地推 feature 4. 無衝突([網址](https://learngitbranching.js.org/?gist_level_id=14b362ec9d20ba72314d254ca685bfdb&locale=zh_TW)):Rebase 作法,先下 fetch遠端有新 commit,本地也要推 feature 6. 有衝突([網址](https://learngitbranching.js.org/?gist_level_id=14b362ec9d20ba72314d254ca685bfdb&locale=zh_TW)):Rebase 作法,先下 fetch 後解衝突,再推上去 ![](https://i.imgur.com/nge9J1C.png) ### 好寶寶模式(注意事項) 1. 做任何事情時,先 git fetch 目前的開發分支,本地處理完再 push 2. 不要讓審核你 PR 的開發者,在線上解衝突 ### 加上 production 分支(正式上線、客戶) * production(正式主機分支): 分支只拿來合併 main 用 * heroku 自動化佈署 * main:開發分支 * feature:開發各個功能用 ## 本次分享用到的指令與軟體 * 指令 * git checkout <分支> * git fetch vs pull * git reflog * git reset * git add . * git commit -m * git push * GitHub pull request * git rebase * git merge * git branch <分支名稱> * 軟體 * GUI 軟體:[sourcetree](https://www.sourcetreeapp.com/) * 終端機組合:[iTerm2](https://iterm2.com/)+[Oh My Zsh](https://ohmyz.sh/) * Vim * 教學 * [Git & GitHub 教學手冊](https://w3c.hexschool.com/git/cfdbd310) ★4