大白话讲解如何给github上项目贡献代码
本文献给对git很迷茫的新手,注意是新手,但至少会点基本操作,有点基本概念的新手,我不会从怎么用github和git是什么开始讲的。如果作为新手你看书又看不进去,原理又太复杂,又没有直接了当告诉我们怎么给项目贡献代码,和项目同步代码的大体流程。于是我快速写了这么个东西。一来整理下自己混乱的思路,二来想号召大家一起用git开发点东西,可是好几个同鞋只会寂寞的给自己push。
我先说下 我之前对github操作的一些迷茫历程,然后之后是怎么解惑的。
最最开始
我以为git clone [项目地址],也就是把代码clone下来 然后修改,然后push到项目里就可以了。
后来发现,这种情况只适合该项目属于你自己的情况,如果你git clone别人的项目代码,你想push都push不上去,因为 git push 不是需要你输入github帐号密码么。
然后 #
我就知道了 github上 不是有个fork么, 好,那么给别人的项目提交代码的方式就有了,先fork下别人的代码,于是你的github上就出现了同名的项目,这个项目就属于你自己了,你把这个自己的项目git clone到本地,修修改改,然后push到你自己的项目里,那么你如何把你对自己项目的改动,给发到之前fork的那个原项目呢,看见了没,在github上你的项目页面有个按钮,叫Pull request,对 你点它就会把你的修改发到对方的项目里,人还会收到邮件呢,由原项目主人决定是否接受你的修改。
但是,这样问题就出来了,在你fork他的项目之后,如果他又更新了代码,你自己fork的项目怎么做到和原项目同步呢?
我就想啊,是不是 我还得重新git clone原项目的代码,然后手动合并到我fork的项目里呢。。。
梁老师说,你丫这太蛋疼了,肯定不是这么麻烦,我细想,也是啊,这不2么。。。
然后
从《Pro git》上看到一个知识点,我擦,github居然可以给项目添加合作者,也就是说,假如你,对,说你呢,戴眼镜那个,你想参与我的项目,你跟我说一声,我就把你添加到我的项目里作为合作者,这个选项在项目的设置里面有,只要我添加你了,你就可以git clone我的代码然后修修改改,然后直接push上来就行了,就不用fork那么麻烦了,如果你要更新服务器代码,只要git pull就行了,看 合作者这东西多方便,就像我们在公司用svn似的。
然后 #
我就想啊,有了合作者还需要你丫fork这个功能干啥?仔细一想,你写个好项目,不能随便加合作者啊,加了个熊孩子把你代码改废了可咋整,这年头熊孩子很多,我自己不就是一个么。所以fork肯定还是需要,fork就是专门预防熊孩子的,这就是真相!那么前面说道到fork之后如何与原项目同步的问题还在啊,没有得到解决。
于是
《Pro git》再次给了我一个解答,具体流程是你啊想给我的项目做贡献,你先git clone我的代码到本地,然后修修改改,然后你不是不能push到我的项目里么,你可以先在github页面上fork我的项目,有了你自己的项目地址(url)之后呢,你在本地操作git remote add [sort name] [your url],意思就是添加第二个远程仓库地址,这个仓库的“昵称”就是你刚指定的[sort name],然后,你之后push文件呢 就通过指定这个[sort name]来push到这个你自己的仓库里。等你觉得想要把你改的发给原项目同步,就在你的项目上点Pull request按钮.说下另一种情况,如果是,原项目发生了改动,你要想同步到本地,就直接从git fetch origin 从原项目的地址同步代码,然后再merge就好了。当然,如《Pro git》上所写,你可以通过新建分支的方式往自己的项目上push,这样同步的时候直接fetch就行了。这块如果我没写明白或者你想知道怎么新建分支的方式push到自己的项目里,可以直接参考《Pro git》的“公开的小型项目”一节,那我的贡献就是指点你如何从这本书里快速的找到你想要的。= =。
好了,时间有限,我写的快不一定讲明白,欢迎跟我讨论。
感谢linus,感谢git,感谢github,感谢kindle,感谢《Pro git》,感谢梁老师,感谢我自己,感谢所有的熊孩子们。
大白话讲解如何给github上项目贡献代码的更多相关文章
- 花20分钟写的-大白话讲解如何给github上项目贡献代码
原文地址:http://site.douban.com/196781/widget/notes/12161495/note/269163206/ 本文献给对git很迷茫的新手,注意是新手,但至少会点基 ...
- (转)大白话讲解如何给github上项目贡献代码
转自:https://site.douban.com/196781/widget/notes/12161495/note/269163206/ 2013-03-30 22:53:55 本文献给对g ...
- 使用BigQuery分析GitHub上的C#代码
一年多以前,Google 在GitHub中提供了BigQuery用于查询的GitHub上的开源代码(open source code on GitHub available for querying) ...
- (转)GitHub Desktop 拉取 GitHub上 Tag 版本代码
转自:GitHub Desktop 拉取 GitHub上 Tag 版本代码 一直在使用 GitHub Desktop 图形化 git 管理工具,统一项目框架版本时需要切换到ThinkPHP Tag 分 ...
- GitHub上YOLOv5开源代码的训练数据定义
GitHub上YOLOv5开源代码的训练数据定义 代码地址:https://github.com/ultralytics/YOLOv5 训练数据定义地址:https://github.com/ultr ...
- GitHub上fork一个项目贡献代码以及同步原作者的修改【转】
如何贡献自己的力量 首先你总得有自己的github帐号吧,注册一个,非常简单,只需用户名,邮箱,密码,邮箱只是用来找回密码的,不做验证.因此注册后立即能用!比如我现在新注册一个叫JsLouvre的示范 ...
- Pull Request的过程、基于git做的协同开发、git常见的一些命令、git实现代码的review、git实现版本的管理、gitlab、GitHub上为开源项目贡献代码
前言: Pull Request的流程 1.fork 首先是找到自己想要pull request的项目, 然后点击fork按钮,此时就会在你的仓库中多出来一个仓库,格式是:自己的账户名/想要pull ...
- 适合小白的大白话讲解--->Git与Github的区别
本文由 伯乐在线 - 听风 翻译,艾凌风 校稿.未经许可,禁止转载!英文出处:Red Radger.欢迎加入翻译组. 本文旨在使用通俗易懂的文字,讲解版本控制背后的理论,以便你能对程序员们如何工作有个 ...
- GitHub上项目配置和导入eclispe的问题解决
在github上下载的工程文件导入的时候总是遇到各种各样的问题,昨天晚上瞎忙一晚上查资料没搞定.早上找高手请教了一下,一起弄了好一会终于解决了,这里记录一下方法解决的具体方法步骤. 本方法适用于离线导 ...
随机推荐
- React:快速上手(3)——列表渲染
React:快速上手(3)——列表渲染 使用map循环数组 了解一些ES6 ES6, 全称 ECMAScript 6.0 ,是 JaveScript 的下一个版本标准,2015.06 发版.ES6 主 ...
- redis---在CentOS6.5下安装与配置
本文详细介绍redis单机单实例安装与配置,服务及开机自启动.如有不对的地方,欢迎大家拍砖o(∩_∩)o (以下配置基于CentOS release 6.5 Final, redis版本3.0.2 [ ...
- HDU 4370 - 0 or 1 (SPFA+思维)
题意:给一个N*N的矩阵C,和一个N*N的只由0和1组成的矩阵X. X满足以下条件: 1.X 12+X 13+...X 1n=1 2.X 1n+X 2n+...X n-1n=1 3.任意 i (1 ...
- 什么是jstack
以下是百度百科的内容 jstack是java虚拟机自带的一种堆栈跟踪工具. jstack用于生成java虚拟机当前时刻的线程快照.线程快照是当前java虚拟机内每一条线程正在执行的方法堆栈的集合,生成 ...
- 优秀 H5 案例收集 vol.3(不定期更新)
上期浏览:Vol.1 Vol.2 爱的不同定义,五笔连成爱http://news.163.com/special/fdh5_valentines/ 世界华语悬疑文学大赛—下一位悬疑大师,就是你!h ...
- 跳出弹窗页面禁止滚动(PC端和手机端)
pc端如何实现 1.当弹窗显示时,为body元素添加属性:overflow:hidden, 当关闭弹窗时移除该属性即可2.在弹窗的div上设置 @scroll.stop.prevent 3.前端页面弹 ...
- C++命名(自定义)
1.自定义函数 void GetName(): 2.布尔型变量 BOOL ISOPEN:
- [转载]织梦DEDE多选项筛选_联动筛选功能的实现_二次开发
织梦默认的列表页没有筛选功能,但有时候我们做产品列表页的时候,产品的字段比较多,很多人都需要用到筛选功能,这样可以让用户更方便的找到自己所需要的东西,实现这个联动筛选功能需要对织梦进行二次开发,下面就 ...
- sublime使用记录之快速生成html5基本模板
sublime使用记录之快速生成html5基本模板 效果如图:
- eclipse官网下载
Provided by IBM Cloud Eclipse IDE for Java Developers http://eclipse.bluemix.net/packages/photon/dat ...