2013年4月4日星期四
git merge after fork
背景:
fork 了一个感兴趣的项目,例如 memcached,它的开发者很活跃,很快会遇到将主项目合并到 fork 出的分支中来的实际问题,远程分支合并.
具体步骤:
1. 显示数据仓库
$ git remote -v
origin git@github.com:hy0kl/memcached.git (fetch)
origin git@github.com:hy0kl/memcached.git (push)
可以看到当前的git库中,有一个默认的远程数据仓库,后面的(fetch)和(push)是 pull 抓取数据和 push 推送数据的地址.
我们要合并的是 git://github.com/memcached/memcached.git
2. 方法
$ git checkout -b feature # 创建并切换到新的 feature 分支来进行 merge 操作,降低操作风险
$ git remote -v # 查看当前的远程仓库配置
$ git remote add dev-memcached git://github.com/memcached/memcached.git
$ git remote -v # 查看新增后的变化,形如:
dev-memcached git://github.com/memcached/memcached.git (fetch)
dev-memcached git://github.com/memcached/memcached.git (push)
origin git@github.com:hy0kl/memcached.git (fetch)
origin git@github.com:hy0kl/memcached.git (push)
$ git fetch dev-memcached # 将 dev-memcached(即 memcached 最新源码) fetch 下,准备进行 merge
$ git merge dev-memcached/master # 将 dev-memcached 下 maste 分支的内容 merge 到当前的数据仓库.其他的分支也可以,将master替换即可
$ git remote rm dev-memcached # 删除远程数据仓库,避免以后误操作
3. 合并代码
之后如果代码冲突解决完成,可以按照正常的代码提交流程进行代码提交:
$ git commit -am "msg"
$ git pull
$ git push
如果是 master 分支开发,则
$ git checkout master
$ git merge feature
# 有冲突,解决后先 commit
$ git push # 完成
PS: 感谢姜同学
订阅:
博文评论 (Atom)
没有评论:
发表评论