我們經常會 fork github 上一些開原始碼來為我所用,提交到我們自己的 gitlab,有時我們會該程式碼進行二開,功能擴充套件或者是修復 bug。但是原作者同時會維護更新原有程式碼,我們獲取原作者提交的新程式碼,我們必須做一些同步程式碼的工作。
場景:
- 程式碼倉庫 A,開原始碼
- 程式碼倉庫 B,來自 A,提交到我們自己的 gitlab
- A 更新,B 需要同步的 A 的程式碼
B:
git checkout master
git remote add upstream A的倉庫地址
git fetch upstream
git merge upstream/master
git push
這樣即可更新到 A 的新程式碼,並推送到我們自己的倉庫。如果出來fatal: refusing to merge unrelated histories
,是由於提交歷史不同造成的,fetch 時使用git fetch upstream --allow-unrelated-histories
。
如果二開的程式碼修改和原始碼更新有衝突,需要解決衝突都可以提交。
本作品採用《CC 協議》,轉載必須註明作者和本文連結