origin
:我自己的遠端儲存庫(網頁上的)
upstream
:我原本 fork 的原專案
origin
upstream
。現在假設有 A,B,C 三個人開發:
接下來細部說明每一個步驟的開發流程:
先確認自己在哪個分支:
接下來是最重要的一步,必須要先確保自己寫的東西有先被存到遠端上
切換前必須要將 feature
的變更都 push
完成,使用以下指令確認還有哪些檔案與網頁上的 feature
有差異:
若出現一些你不想推上去的檔案,但你仍然想換分支,可以使用以下指令丟棄所有目前與網頁上的 feature
不同的部分:
確保本地檔案與網頁上的 feature
一樣後,再換至自己的 master
如果還沒設定過上游,先用以下指令設定(若看到報錯代表已經設定過了):
確保自己的 master
有和原專案同步:
git pull
= git fetch
+ git merge
用 fetch 再 merge 會比較安全,才決定要不要 merge
用 pull 就會直接合併到底了
概念:origin/master
是你自己 fork 過來的,upstream/master
才是專案管理者 A 的 master。剛剛同步完 upstream/master
到本地了,接下來要將新變更也 push 到我們的 origin/master
。
準備切回 feature
分支並且將上一步的更新 merge 進來:
merge 如果遇到衝突怎麼辦?
解決完衝突,確保 merge 完成後就可以至自己的 GitHub 頁面,並且點選 Compare & Pull Request 的按鈕,原專案管理者 A 就會收到其他人開發的新變更了!