我的博客主題是直接fork原作者的,所以當原作者更新之后,我要合並沖突,跟隨更新
下面說一下簡單的方法,算是自己做個筆記
給主題的fork加一個remote
- 給 fork 配置一個 remote
- 使用 git remote -v 查看遠程狀態
➜ next git:(master) git remote -v
origin git@github.com:luodaoyi/hexo-theme-next.git (fetch)
origin git@github.com:luodaoyi/hexo-theme-next.git (push)
- 把原作者的遠程倉庫添加到remote
git remote add upstream https://github.com/iissnan/hexo-theme-next.git
- 再次查看是否添加成功
➜ next git:(master) git remote -v
origin git@github.com:luodaoyi/hexo-theme-next.git (fetch)
origin git@github.com:luodaoyi/hexo-theme-next.git (push)
upstream https://github.com/iissnan/hexo-theme-next.git (fetch)
upstream https://github.com/iissnan/hexo-theme-next.git (push)
同步Fork
- 從上游倉庫 fetch 分支和提交點,傳送到本地,並會被存儲在一個本地分支 upstream/master
➜ next git:(master) git fetch upstream
From https://github.com/iissnan/hexo-theme-next
* [new branch] dev -> upstream/dev
* [new branch] master -> upstream/master
* [new branch] pisces -> upstream/pisces
- 切換到本地主分支(防止出錯)
➜ next git:(master) git checkout master
Already on 'master'
Your branch is up-to-date with 'origin/master'.
- 把 upstream/master 分支合並到本地 master 上,這樣就完成了同步,並且不會丟掉本地修改的內容。
➜ next git:(master) git merge upstream/master
Already up-to-date.
- 如果沒有需要手動合並的沖突就,直接 git push origin master。直接更新到github上面的fork即可,如果出現需要手動合並的沖突,請繼續看下面。
合並沖突
沖突有很多種,邏輯沖突啦,樹沖突啦,內容沖突什么的,咱不管,一般在這里只會出現內容沖突
方法很簡單直接編輯沖突文件
>沖突產生后,文件系統中沖突了的文件.里面的內容會顯示為類似下面這樣:
a123
<<<<<<< HEAD
b789
=======
b45678910
>>>>>>> upstream
其中:
沖突標記<<<<<<< (7個<)與=======之間的內容是我的修改,
=======與>>>>>>>之間的內容是別人的修改。
此時,還沒有任何其它垃圾文件產生。
直接編輯沖突了的文件,把沖突標記刪掉,把沖突正確解決。
然后提交更改重新push即可
git add . && git commit -m "合並沖突" && git push origin master
完