git已经是多人协作coding的标配,GitHub上有很多开源项目,由一些人进行维护,还有更多的人为其贡献代码,对某个开源项目贡献代码大概可以分为下面几个步骤:

1,fork一份自己的repo

给开源项目贡献代码并不能直接commit,而是需要先fork到自己的仓库下面,然后提PR(Pull Request),经过各种测试以及code review没有问题之后,开源项目的管理员才会将其merge到代码库中

以terminal为例,直接按一下右上角的fork就可以了

fork之后会在自己的repo下面出现这个仓库,这相当于是一份镜像(注意不会随着fork源的更新而更新)

2,将fork的repo clone到本地,修改代码后push到fork的repo里面

直接git clone到本地

clone到本地之后还需要将fork源添加到remote(通常命名为upstream),及时同步其他贡献者的修改,否则可能会有一堆conflict

git remote add upstream git@github.com:microsoft/terminal.git

在每次开始工作前首先需要同步最新的代码(相当于pull),令upstream与本地的master分支保持一致

git fetch upstream
git checkout master
git merge upstream/master

开始修改代码前,在本地仓库的目录下,根据想要实现的功能创建相应的branch,切换到该分支进行工作

git checkout -b test_branch

代码改完了之后最好先利用diff命令检查下,有没有误操作一些代码

git diff .

如果没有问题则添加该修改,commit之后push到远程分支上

git add .
git commit -m 'add xxx feature'
git push -u origin test_branch

3,为修改的代码提交PR(Pull Request)

修改的代码push到remote之后,在自己的仓库下就会有提示说修改了代码

点进去之后就能看到做了哪些修改,还可以再加上一些备注之类的,然后就可以创建PR了

创建PR之后如果经过code review表示还需要修改,那么直接在本地改完继续push到这个分支即可,会在这个PR下面及时显示出来每次push的commit记录,最后直到被管理员merge为止

github 修改项目为public_在GitHub上为开源项目做贡献相关推荐

  1. 如何参与github上的开源项目?

    GitHub 我们一直用 GitHub 作为免费的远程仓库,如果是个人的开源项目,放到 GitHub 上是完全没有问题的.其实 GitHub 还是一个开源协作社区,通过 GitHub,既可以让别人参与 ...

  2. 人工智能科技成熟的11个Github上免费开源项目,很多电影中才有的场景应用到现实颠覆普通人的认知和想象

    人工智能科技成熟的11个Github上免费开源项目,很多电影中才有的场景应用到现实颠覆普通人的认知和想象. 全文大纲: PULSE - 该开源项目可以通过给图片增加像素点来实现去马赛克或高清化. De ...

  3. GitHub上Swift开源项目!

    swift-open-project 这里汇集了目前为止最为流行的Swift开源项目,选取SwiftGuide中的开源部分,这里将每周对项目进行总结,如果大家有推荐的可以联系thinkloki@gma ...

  4. github上的开源项目中gif图片的制作软件

    在github上学习开源项目的时候,看到好些开源项目里的示例图片都是gif格式的,这些gif图片能够很好地介绍此开源项目的功能,尤其是在电脑上运行android模拟器时,然后就想着自己以后做开源的时候 ...

  5. 从0开始学习 GitHub 系列之「08.如何发现优秀的开源项目」----转载自stormzhang 原创文章

    之前发过一系列有关 GitHub 的文章,有同学问了,GitHub 我大概了解了,Git 也差不多会使用了,但是 还是搞不清 GitHub 如何帮助我的工作,怎么提升我的工作效率? 问到点子上了,Gi ...

  6. 使用cvs或svn从sourceforge上获取开源项目的方法[转载]

    著名开源软件网站(www.sourceforge.net)上面的开源项目,大部分使用的管理工具为cvs或svn. 这两种软件的代表客户端程序是wincvs和tortoiseSVN. 1.cvs CVS ...

  7. BAT开源项目哪家强,这15个开源项目告诉你答案

    github精选前文传送门: 国产BAT开源谁最牛,这些开源项目告诉你 还担心春节抢不到票,Github标星21K,这两款开源项目值得推荐 程序员接私活必备的10款开源前端后台框架 工欲善其事,必先利 ...

  8. 开源项目贡献者_如何认识您的开源项目贡献者并发展您的社区

    开源项目贡献者 by David Herron 大卫·赫伦(David Herron) 如何认识您的开源项目贡献者并发展您的社区 (How to recognize your open source ...

  9. 中国信通院发布“可信开源项目 life cycle 2.0”,明星开源项目等你来!

    以下文章来源于中国信通院CAICT,作者中国信通院CAICT 近年来,开源生态发展势头迅猛,开源在推动技术创新.促进产业协作.加快各行业数字化进程方面发挥的作用日益凸显.过去一年,开源生态进一步发展成 ...

  10. 优秀的IC/FPGA开源项目(一)-FPGA+CMOS+USB/SD架构开源项目

    优秀的IC/FPGA开源项目(一)-FPGA+CMOS+USB/SD架构开源项目 <优秀的IC/FPGA开源项目>是新开的系列,旨在介绍单一项目,会比<优秀的 Verilog/FPG ...

最新文章

  1. Windows 7 64位机上OpenCV2.4.3的编译、安装与配置
  2. Linux 性能监测:Memory
  3. java考题_Java考题知识点
  4. 问题 1046: [编程入门]自定义函数之数字后移
  5. html读取servlet,简单html与servlet交互(HTML利用servlet读取txt)
  6. c语言简单的动画程序代码,发个C代码(简单动画演示)
  7. 吴恩达机器学习作业Python实现(八):异常检测和推荐系统
  8. 设计模式学习笔记(6) - 状态模式
  9. Mysql更换版本的操作,非常详细(包括数据备份,卸载,安装,还原)
  10. 6-1 uniapp 打包 App 横屏竖屏切换出现样式混乱问题
  11. Linux如何恢复初始PS1,ps界面怎么恢复默认设置
  12. Snipaste--截屏--贴图
  13. 软件学习——定时器(3)
  14. ohci之usb_submit_urb
  15. 走方格跳格子(dp,递归,排列组合三种方法)
  16. 世界杯“引爆”东南亚电商狂潮,电商人如何选品和营销?
  17. mysql upgrade 报错_mysql_upgrade
  18. 财务投资者和战略投资者有什么分别
  19. Java MVC 架构初学者指南
  20. 关于74HC4051的逻辑真值表及延时的重要性/在AD测量中的校准

热门文章

  1. 一、MySQL数据库基础
  2. Java+大数据开发——HDFS详解
  3. oracle登陆认证方式
  4. 30天敏捷结果(15) - 保持一个最佳状态的大脑
  5. c# SerialPort会出现“已关闭 Safe handle”的错误
  6. SQL2008无法连接到.\SQLEXPRESS,用户'sa'登录失败(错误18456)图文解决方法
  7. Spring JdbcTemplate查询实例
  8. Flex与.NET互操作(七):了解FluorineFx的环境配置(远程对象、网关、通道、目的地)...
  9. windows2008下配置iis时出现错误“由于扩展配置问题而无法提供您请求的页面。如果该页面是脚本,请添加处理程序。如果应下载文件,请添加 MIME 映射。”...
  10. Spring有几种事务处理方式?举例说明