Fork + Pull Request 模式

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

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


  1. fork目标项目到自己的项目.
  2. clone到本地:
  3. git clone https://github.com/yourname/project.git
  4. 更新自己的代码,与原项目保持一致
  5. git remote add upstream https://github.com/sourcename/project.git //设置原代码地址
使用 git remote -v 查看 origin 和 upstream 对应的是否正确:
origin对应的应该是自己github的地址,即yourname/project
upstream对应的应该是原项目的地址,即sourcename/project
  1. 从原项目取最新的代码合并到自己本地master分支上.
  2. git pull upstream master
  3. 每次在动手写代码之前,已经写完代码待提交前,都应该从原项目取一下最新的代码.
git pull upstream master
处理冲突(若有冲突)
修改代码,开发....
git pull upstream master
处理冲突(若有冲突)
  1. 自己写代码时,最好在分支上开发,写完后合并到主干.
1.本地新建分支
git checkout -b new_branch
2.把本地的 nen_branch 分支保存的 github 上
git push origin new_branch
3.删除本地 add_sth 分支
git branch -D new_branch
4.删除 github 上的 new_branch 分支
git push origin :new_branch
  1. 上传代码到自己的github项目:
  2. git push origin master
  3. 将自己写的代码pull到原项目:
  4. GitHub提供的工具就是“Pull Request”
如果要在fork的项目里,新建文件夹,以后自己只在此文件夹下开发,整体步骤类似上面,但是提交和更新的话,要在这个新建文件夹当前目录进行,而不能进去新建文件夹里面更新和提交
  1. 本地新建分支,开发完成,add -A , commit -am "xx"
  2. 切换到主干,合并分支
  3. 跳到上级目录,即在fork项目的目录里,add -A , commit -am "xx" , push到自己fork的项目
  4. pull request到原项目.



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


GitHub提供的工具就是“Pull Request”。注意到上图右上方“Pull Request”按钮了么?点击该按钮进入Pull Request创建界面。


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


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


Pull Request包含的改动差异


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


附带一些常用的命令

git status
git pull
git add .
git commit -am "提交所有"
git push


修改原来操作的地址

git remote set-url origin https://github.com/xxx/xxx.git
0条评论