其实很多时候我们都是fork完别人的代码然后快速提交,然后发一个PR过去就好了。但有的时候我们也会遇到需要长期保持我们fork的项目与fork的源保持一致。粗暴一点的做法,就是删掉当前的repository然后再重新fork一个。当然我们还有更好的方法。
下面用自己fork的react-hot-loader作为例子。自己fork了gaearon的 react-hot-loader,然后自己clone了一个项目在本地。这个时候进入项目,我们可以使用git remote -v
可以看到我们的clone源。比如过了几天,对方项目新增了分支或者新的代码,这个时候你希望自己的项目也能够保持与原项目代码进行同步。这个时候我们可以这样做:
1 配置远程的upstream 地址
git remote add upstream https://github.com/ORIGINAL_OWNER/ORIGINAL_REPOSITORY.git
而我这里的地址也就是我fork的地址 https://github.com/gaearon/react-hot-loader
2 这个时候你可以执行git fetch upstream
进行对upstram的代码更新。
大概你就能够看到一些更新的信息。
3 进行代码合并
这个时候我们可以用git merge
合并我们希望从远程更新后的分支或者主干代码。比如: