本文主要是介绍GitHub将Fork来的Project合并到原Project - Folk和Pull Request模式,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
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的页面。

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

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

图:派生的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”,查看所包含的提交。如图所示。

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

图:Pull Request的提交界面
Pull Request 提交后,就可以打开原有的项目,会看到有相应的Merge的Request,如果冲突过多,GitHub将提醒你需要手动Merge,然后你就可以用Github提示的相关命令开始做手工的Merge。Merge完后,页面将自动刷新提示Merge已经完成。
你可能会看到如下类似的提示:
这篇关于GitHub将Fork来的Project合并到原Project - Folk和Pull Request模式的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!