- 如何更新已经fork的代码:http://www.cnblogs.com/zyumeng/p/3442263.html
-
也可以参考该链接
-
具体做法如下,现在的情况是,我在2.0.1的代码的基础上做了二次开发,然后原来的github源对框架做了更新,把它更新到了2.0.2版本,增加了许多功能,那么一方面我要把对方更新的2.0.2分支添加到本地分支中,同时把它修改的内容和我修改的内容合并,解决冲突,那么这件事情要怎么做呢:
- 基于自己已经修改好的2.0.1分支新建一个分支2.0.2:
git checkout -b 2.0.2
- 把2.0.2的分支回滚到自己做修改之前的一个版本,方便与作者的2.0.2分支合并:
git reset --hard HEAD^^^^^^^^^
- 添加upstream为作者的github目录:
git remote add upstream git@github.com:doramart/DoraCMS.git
- 如果以前添加过其他的upstream的话要把他们删除在重新用以上指令添加:
git remote rm upstream
git remote add upstream git@github.com:doramart/DoraCMS.git
- fetch所有原作者的更新,此时作者每个分支的更新都会本fetch到本地,但还不会和你的修改merge,你可以选择与自己的哪个分支合并:
git fetch upstream
- 首先切换到2.0.2分支,然后与upstream的2.0.2分支合并:
git merge upstream/2.0.2
- 让master分支(自己在2.0.1分支上做过修改的分支)与2.0.2(原作者修改的分支)分支合并,首先切换分支到master分支,然后使用指令合并分支:
git checkout master
git merge 2.0.2
- 这时候很有可能会出现冲突,但是不要怂,按照这个链接的说明解决:
git status
可以查看当前分支的修改状态,看有那个文件被改了
然后打开对应的文件,比较原作者的部分和自己的部分,手动merge一下
最后git add
对应的文件。
然后git commit
即可 - 最后把merge好的分支push到云端即可。
- 基于自己已经修改好的2.0.1分支新建一个分支2.0.2:
- 删除云端某分支,参考该链接:
git push origin :分支名