美文网首页
GitHub学习

GitHub学习

作者: 海神之奏 | 来源:发表于2016-10-22 17:59 被阅读26次

    github上fork别人的代码之后,如何保持和原作者同步的更新



    1.从自己fork之后的版本库clone

    $  git clone -o chucklu https://github.com/chucklu/Hearthstone-Deck-Tracker.git

    参数说明:

    -o

    Instead of using the remote nameoriginto keep track of the upstream repository, use.

    2.再将别人的版本库git remote add

    2.1  $git remote add epix37 https://github.com/Epix37/Hearthstone-Deck-Tracker.git

    2.2  $ git remote -v

    chucklu https://github.com/chucklu/Hearthstone-Deck-Tracker.git (fetch)

    chucklu https://github.com/chucklu/Hearthstone-Deck-Tracker.git (push)

    epix37 https://github.com/Epix37/Hearthstone-Deck-Tracker.git (fetch)

    epix37 https://github.com/Epix37/Hearthstone-Deck-Tracker.git (push)

    3.本地分支和远端分支映射处理

    参考如何将本地分支和远端分支进行映射

    $ git branch

    chucklu_master

    *master

    chucklu_master分支用来对应自己远端的master分支

    master分支用来对应原作者的master分支

    (1)切换到master分支

    git checkout master

    首先确保目前处于master分支,上面的git branch就是查看本地分支的命令,master前面的*表示当前分支是master分支

    (2)同步原作者的代码

    git pull

    (3)切换到chucklu_master分支

    git checkout chucklu_master

    (4)变基或者合并

    git rebase master

    git merge master

    (5)推送代码到自己的版本库

    git push chucklu HEAD:master或者

    git push chucklu chucklu_master:master

    假如自己fork版本库之后,已经在某个分支上进行了修改的话。

    那么rebase就不适用,需要使用cherry-pick来处理。

    为了确保cherry pick之后的代码,确实是自己所期望的,那么只需要对比一次,自己的分支的最后一次提交和原作者的分支的最后一次提交,看看差异,是否是自己额外修改导致的

    使用tortoisegit-->diff with previous version

    使用cherry-pick的注意事项,如果其中有某一个commit是合并导致的,那么这个commit就不需要进行cherry-pick

    今天看到一篇文章,貌似cherry-pick不推荐使用

    http://dan.bravender.net/2011/10/20/Why_cherry-picking_should_not_be_part_of_a_normal_git_workflow.html

    ====9月13日更新====

    如果你仅仅是同步原作者的master分支,而不需要进行合并操作的话,本地仅有一个分支也够用了

    不过,需要添加2个remote

    扩展:

    重新命名远端git remote rename oldname newname

    更多关于操作remote的命令,请参考http://www.ruanyifeng.com/blog/2014/06/git_remote.html

    相关文章

      网友评论

          本文标题:GitHub学习

          本文链接:https://www.haomeiwen.com/subject/huqtlttx.html