GIthub如何更新已经fork的代码

  1. 如何更新已经fork的代码:http://www.cnblogs.com/zyumeng/p/3442263.html

  2. 也可以参考该链接

  3. 具体做法如下,现在的情况是,我在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到云端即可。
  4. 删除云端某分支,参考该链接
    • git push origin :分支名