fork解决冲突—fork他人代码,原作者更新后如何同步
1.先在某个文件夹下面克隆一份自己分支仓库下的代码,并进入到已下载好的项目中,在此文件夹下打开git bash命令框,下面执行git命令
2.给主题的fork增加一个remote
➜ 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)
3.将原作者的远程仓库添加到remote
➜ next git:(master) git remote add upstream https://github.com/iissnan/hexo-theme-next.git
4.查看是否添加成功
➜ 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)
5.同步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
6.切换到本地分支,防止出错
➜ next git:(master) git checkout master
Already on 'master'
Your branch is up-to-date with 'origin/master'.
7.把 upstream/master 分支合并到本地 master 上,这样就完成了同步,并且不会丢掉本地修改的内容
➜ next git:(master) git merge upstream/master
Already up-to-date
8.如果没有需要手动合并的冲突就,直接 git push origin master。直接更新到github上面的fork即可,如果出现需要手动合并的冲突,请继续看下面
9.合并冲突
冲突有很多种,逻辑冲突,树冲突,内容冲突…在这里一般只会出现内容冲突,方法很简单:直接编辑冲突文件,冲突产生后,文件系统中冲突了的文件。里面的内容会显示为类似下面这样:
a123
<<<<<<< HEAD
b789
=======
b45678910
>>>>>>> upstream
其中:
冲突标记<<<<<<< (7个<)与=======之间的内容是我的修改,
=======与>>>>>>>之间的内容是别人的修改。
此时,还没有任何其它垃圾文件产生,直接编辑冲突了的文件,把冲突标记删掉,把冲突正确解决,然后提交更改重新push即可
10.git add .
11.git commit -m’合并冲突’
12.git push origin master
至此,fork解决冲突就解决了!