[git]fork+pull提交模式
fork+pull提交模式
在公司项目中,大多都是通过“主题分支”的方式,进行开发与合并代码。但是,这样又一个弊端就是:合并代码后需要删除分支。同时,如果是开源的项目的话,非项目中的成员是无法创建分支的,也就无法贡献代码。
这个时候,就体现出fork的优势所在了。fork就是把源仓库复制一份到自己的github仓库下,这样非项目中的成员也可以任意修改代码,修改完代码,只要提交pr就可以了。后面的事情就是,项目的所有者要做的了。
同时,项目的所有者也不需要设定主分支的权限,比如:成员不能自行把开发的主题分支直接合并到dev或者master分支上。只有管理者才有这种权限,否则会不便于管理。fork提交的pr不会产生主题分支,也就是不需要合并完pr后删除分支。
如何使用fork模式
fork项目
设置源项目的远程仓库:
git remote add 起一个名字 源项目地址
,用于后面的更新代码。在dev上直接修改代码
在push前保证所在分支是最新的:
git pull --rebase 刚才起的名字 dev
,这里因为是在dev分支上直接修改,所以获取源项目的dev分支的最新代码。推送到你fork来的仓库上:
git push
,push前确定是否关联的是dev分支:git branch -vv
最后在源项目中提交pr,请求合并你的改动。
在上述过程中,容易混淆的地方就是’源项目‘和’fork的项目’:你没有办法修改’源项目‘,只能修改fork到你自己的github账号仓库下的’fork的项目‘。在提交的时候,需要保证‘fork的项目’是最新,这样在pr前,就可以在你的本地把所有的冲突解决完成,顺利的合并到’源项目‘上。
总结
如果你是项目中的成员,有创建分支的权限,那么用fork模式或者主题分支的模式都可行的,同时没有什么太大的区别。
对于向开源项目贡献代码,那就一定要用到fork模式。
参考
最新文章
- Android Studio 快捷键
- Torch Problems: require some packages doesn't work
- 数据库DDL语句书写规范
- 使用XmlSerializer序列化可空属性
- java微信开发框架wechat4j入门教程
- Spring(九)Spring对事务的支持
- libreoffice转office文档为pdf文档
- java jvm学习笔记十(策略和保护域)
- Android手机出现";已安装了存在签名冲突的同名数据包";的原因及解决办法
- discuz x2 个人资料项排序问题解决方法、添加自定义字段、修改栏目名称和介绍
- webstorm创建nodejs + express + jade 的web 项目
- linux系统下Python虚拟环境的安装和使用
- [Spark內核] 第41课:Checkpoint彻底解密:Checkpoint的运行原理和源码实现彻底详解
- Altium Designer快速调整丝印
- [Swift]LeetCode395. 至少有K个重复字符的最长子串 | Longest Substring with At Least K Repeating Characters
- python基础(六)
- npm 发布包和删除包(2019最新攻略)
- ASP.NET MVC中使用FluentValidation验证实体(转载)
- Redis系统性介绍
- yum和编译两种方式升级or降级Centos内核