[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模式。
参考
[git]fork+pull提交模式的更多相关文章
- git fork后提交pull request到原作者,别人的pull request我们要怎样merge融合
首先要记住,pull request 不是随便提交的,这是建立在你对原作者的项目有fork,并对项目中的代码有修改,并提交到了你的GitHub上,才能进行下面的操作. 若不知怎样fork项目,请看我的 ...
- git fork , git pull request那回事
git fork 原理 相当于你在原项目的主分支上又建立了一个分支,你可以在该分支上任意修改,如果想将你的修改合并到原项目中时,可以pull request,这样原项目的作者就可以将你修改的东西合并到 ...
- git fork之如何同步更新
1.打开git fork的开源项目(这里我以git fork vscode为例): 2.点击New pull request 3.选择你自己的 4.选择完后出现如图 5.调整状态,右边改为源fork地 ...
- git subtree pull 错误 Working tree has modifications
git subtree 是不错的东西,用于 git 管理子项目. 本文记录我遇到问题和翻译网上的答案. 当我开始 pull 的时候,使用下面的代码 git subtree pull --prefix= ...
- git无法pull仓库refusing to merge unrelated histories (拒绝合并不相关仓库)
原文地址 https://blog.csdn.net/lindexi_gd/article/details/52554159 本文讲的是把git在最新2.9.2,合并pull两个不同的项目,出现的问题 ...
- git使用,提交代码简记
强制覆盖本地修改:git reset --hard 项目初始时获取前端代码: git clone https://git.oschina.net/yudian/yudian-frontend.git ...
- git创建分支提交到远程分支步骤
git创建分支提交到远程分支步骤 step1,在本地新建分支() git branch newbranch step2:把本地分支push到远程 git push origin newbranch s ...
- git log 查看提交记录,参数:
git log 查看提交记录,参数:-n (n是一个正整数),查看最近n次的提交信息 $ git log -2 查看最近2次的提交历史记录 -- fileName fileName为任意文件名,查看指 ...
- git 修改已提交的注释
在git中,其commit提供了一个--amend参数,可以修改最后一次提交的信息 修改最后一次提交注释 git commit --amend 然后在出来的编辑界面,直接编辑注释的信息,保存退出 gi ...
随机推荐
- c#之第四课
数组: , , , , , , -, -, }; foreach (int i in numbers) { System.Console.WriteLine(i); }
- React Native入门遇到的一些问题
本文示例参考自<React Native第一课> React Native官方文档中文版(含最新Android内容) 这里只大概记录下我的操作步骤和遇到的问题,一定要牢记下面这条: 如果你 ...
- asp.net 读取RedisSessionStateProvider配置
最近项目遇到需要读取RedisSessionStateProvider配置文件applicationName节点,如: 读取的方法有很多: 1直接读取web.config文件, void test1( ...
- python coroutine测试
目的:实现一个类似于asyn await的用法,来方便的编写callback相关函数 from __future__ import print_functionimport timeimport th ...
- 【资源集合】94个iOS开发资源推荐,帮你加速应用开发
资源总结类文章总是开发者们所喜欢的,网上已经有各种weekly.头条以及期刊类资源总结,今天这篇来自于开发者Viswateja Reddy的总结.原文对各个项目的介绍非常简单,为了更便于阅读,编辑在原 ...
- HEXO+PAGE 搭建个性博客
新博客地址: http://javen205.oschina.io https://javen205.github.io Hexo 是高效的静态站点生成框架,她基于 Node.js. 通过 Hexo ...
- Oracle 12c 安装手册
Oracle 12C 首次安装 期待已久的Oracle 12C 终于发布了,我迫不及待的下载了介质,一睹风采. 下载地址:http://www.oracle.com/technetwork/datab ...
- Windows8和CentOS6.4(64)双系统硬盘安装(图文)【转】
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://asange.blog.51cto.com/7125040/1193980 最近在 ...
- C#-DataTable分页代码
/// <summary> /// DataTable分页并取出指定页码的数据 /// </summary> /// <param name="dtAll&qu ...
- appToken 来源
.appToken的来源ActivityRecord, 用于在ActivityManagerService中记录Activity相关的信息(ActivityThread端 用的是ActivityCli ...