Fork別人的代碼 原作者更新后如何同步


我的博客主題是直接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 &quot;合並沖突&quot; && git push origin master


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM