Discuz! Board

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1949|回复: 2
打印 上一主题 下一主题

Github 上怎样把新 commits 使用在自己的 fork 上?

[复制链接]

32

主题

53

帖子

202

积分

认证用户组

Rank: 5Rank: 5

积分
202
跳转到指定楼层
楼主
发表于 2017-2-18 22:50:12 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我 fork 了别人的代码,然后做了适合自己的修改。现在他的版本有更新,和我的修改不冲突,我想直接 pull 到自己的 fork 版本中,该怎样做?

我只找到了把我 fork 版本的修改 pull 到原版本的方法,但无法把原版本的修改 pull 到我 fork 的版本中。


作者:pezy
链接:https://www.zhihu.com/question/20393785/answer/30725725
来源:知乎
著作权归作者所有,转载请联系作者获得授权。

举例说明: (每一步都有截图)
这一页往下面拉:



https://www.zhihu.com/question/20393785/answer/30725725


回复

使用道具 举报

1228

主题

1997

帖子

7582

积分

认证用户组

Rank: 5Rank: 5

积分
7582
沙发
发表于 2020-4-13 10:50:41 | 只看该作者
https://www.cnblogs.com/eyunhua/p/8463200.htmlgithub上fork原项目,如何将本地仓库代码更新到最新版本?
场景:
在github上fork原项目,项目组成员发起pull request提交了代码,这时自己在本地仓库该如何更新到最新代码?
操作方法如下:方法一、从github上进行操作然后更新
登录自己的github账号,在fork的项目内点击“New pull request”:
将base fork改成自己github上fork后的项目,head fork改成原项目,如果base fork选择了自己fork完的项目后变成两个都是master,可以点一下“compare across forks”
点击“Create pull request”进入页面,填写信息后提交
点击“Merge pull request”合入代码
这时候回到自己github账号下fork的项目code下看commits可以看到原项目新提交的内容都已经合过来了
这时候在本地执行"git pull"就可以更新到最新的代码了
方法二、通过命令行fetch拉取原仓库更新
1. 配置当前当前fork的仓库的原仓库地址
git remote add upstream <原仓库github地址>
2. 查看当前仓库的远程仓库地址和原仓库地址
git remote -v
3. 获取原仓库的更新。使用fetch更新,fetch后会被存储在一个本地分支upstream/master上。
git fetch upstream
4. 合并到本地分支。切换到本地master分支,合并upstream/master分支。
git merge upstream/master
5. 这时候使用git log就能看到原仓库的更新了。
git log
6. 如果需要自己github上的fork的仓库需要保持同步更新,执行git push进行推送
git push origin master




回复 支持 反对

使用道具 举报

1228

主题

1997

帖子

7582

积分

认证用户组

Rank: 5Rank: 5

积分
7582
板凳
发表于 2020-9-16 10:35:32 | 只看该作者
Github Fork 过程概述在Github上有很多优秀的开源项目,相信每一位热衷于技术的朋友都会在Github上Fork一些感兴趣的项目,然后在本地修改并提交。本文以spring-framework为例,在Github上Fork该项目,更新提交的一个完整过程如下图所示:



Fork and update Github repo

  • Fork一个项目,比如spring-framework,该操作会复制该项目的所有历史提交内容到个人仓库中,并生成一个相同的项目;
  • Clone之前Fork的项目到本地计算机中;
  • 在本地仓库中更新某些文件;
  • 提交更新的文件到本地仓库;
  • 将本地仓库的更改内容推送push到个人github远程仓库;
  • 创建pull请求,既可以同步更新fork的原始项目中别人的更新到自己的github仓库中,也可以提交个人更新的内容到fork的原始项目。
Fork问题我Fork的 spring-framework项目如下:



我Fork的spring-framework

spring-framework项目最新进展如下:



spring-framework最新进展

可以看到在我Fork以后spring-framework有了很大新的代码提交,本文就是想简单介绍一下,如何同被Fork的项目保持同步更新,将以spring-framework项目为例。
保持Fork同步更新1.打开自己的github中Fork的项目,打开Code选项卡,点击下面的New pull request创建一个新的pull请求;




Code-New pull request

2.打开Comparing chanages,默认如下图所示,这时base fork是你fork的项目,二head fork是你自己的仓库。



Comparing chanages

3.在上图中进行选择,前面选择base-fork选择自己的github仓库的spring-framework项目,会出现下图所示,这时需要点击compare across forks,并进行选择。



compare across forks

4.具体选择如下:base:master是自己仓库和分支,后面选择head fork,compare:master是你fork项目来源的仓库和分支,可以对比两个项目前后的变化情况。然后点击Create pull request,创建新的pull请求。



Create pull request

5.填写标题Title和评论Comment,并点击Create pull request。Preview可以预览评论效果,右侧有5个选项可以设置Reviewers检阅用户、Assignees分配给哪个用户、Labels标签(bug、duplocate、enhancement、help wanted、invalid、question、wontfix,也支持自定义)、Projects项目、Milestone里程碑事件。



填写标题Title和评论Comment

6.点击Create pull request之后,就可以在Pull request中看到刚才提交的comment,如下所示:





可以期间有很多更新,往下翻可以找到如下图所示,点击Merge pull request即可。



Merge pull request

填写Merge的评论并且提交,如果有冲突一定要先解决冲突,然后就全部OK了。






最后,再次打开自己仓库的spring-framework项目,可以看到项目已更新到最新版本,和最开始spring-framework原始项目内容一致了。



Fork更新之后

总结本文详细讲解了同步更新Github上Fork项目的其中一种方法,还有其他的方法比如可以删除个人github中fork的该项目然后重新fork,这种方式不能合并自己已更新的代码;还有另外一种方式是在本地建立两个仓库,把两个远程库都clone到本地,然后拉取原fork项目更新到本地,合并更新,最后push到你个人的github即可。



作者:梁朋举
链接:https://www.jianshu.com/p/8ab6ef7ce5e3
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|firemail ( 粤ICP备15085507号-1 )

GMT+8, 2024-5-2 20:51 , Processed in 0.066764 second(s), 18 queries .

Powered by Discuz! X3

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表