`
Josh_Persistence
  • 浏览: 1650184 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类

GitHub将Fork来的Project合并到原Project - Folk和Pull Request模式

    博客分类:
  • Git
阅读更多

Fork + Pull模式

参与GitHub中的项目开发,最常用和推荐的首选方式是“Fork + Pull”模式。在“Fork + Pull”模式下,项目参与者不必向项目创建者申请提交权限,而是在自己的托管空间下建立项目的派生(Fork)。

如果一个开源项目派生出另外的项目,通常意味着项目的分裂和开发团队的削弱,而GitHub中的项目派生则不会,而且正好相反,GitHub中的项 目派生是项目壮大的体现。所有的派生项目都会有链接指向原始项目,派生项目没有独立的缺陷追踪系统(ISSUE),而是必须利用创建者本人的项目中的缺陷 追踪系统。至于在派生项目中创建的提交,可以非常方便地利用GitHub的Pull Request工具向原始项目的维护者发送Pull Request。

 

下面以gotgit版本库为例,用户名是gotgithub,介绍如何利用GitHub提供的Fork和Pull Request工具实现工作协同。

 

1. 版本库派生

    如图所示,项目gotgit尚未Fork的页面。

../images/gotgit-repo-before-fork.png

      点击项目名称右侧的Fork按钮,便在gotgithub用户自己的托管空间下创建项目派生,派生项目版本库出现在版本库列表中,如图

../images/gotgit-in-repo-list.png

图:gotgithub用户的项目列表

        访问派生后的版本库,会发现和派生前的几乎相同,除了没有缺陷跟踪(ISSUE),以及标识了该项目派生之前的原路径等。如图所示。

../images/gotgit-repo-forked.png

    图:派生的gotgit项目

现在gotgithub用户就在本地派生的版本库中提交。

  • 克隆 gotgithub/gotgit 版本库。

    $ git clone git@github.com:gotgithub/gotgit.git
    $ cd gotgit
  • 作出某些修改,并提交。 git status, git add -A, git commit -m'your comments'
  • 推送提交到GitHub。

    $ git push

2.Pull Request(将Folk来的项目的提交Merge到原来的项目中)

         如何能够让gotgit原始项目的创建者知道这个派生项目及新的提交呢?GitHub提供的工具就是“Pull Request”。注意到上图右上方“Pull Request”按钮了么?点击该按钮进入Pull Request创建界面。

 

在弹出的Pull Request创建界面中,点击菜单中的“Commits”,查看所包含的提交。 

点击菜单中的“Files Changed”,查看所包含的提交。如图所示。

 

../images/pull-request-form-file.png

图:Pull Request包含的改动差异

 

点击菜单中的“Preview Discussion”,填写Pull Request的标题和内容,完成Pull Request的创建。如图所示。

 

../images/pull-request-form-discuss.png

图:Pull Request的提交界面

Pull Request 提交后,就可以打开原有的项目,会看到有相应的Merge的Request,如果冲突过多,GitHub将提醒你需要手动Merge,然后你就可以用Github提示的相关命令开始做手工的Merge。Merge完后,页面将自动刷新提示Merge已经完成。

你可能会看到如下类似的提示:

 

 

 

 

  • 大小: 25.6 KB
1
0
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics