GitHub 可以托管各种Git版本库,并提供一个web界面,但与其它像 SourceForge或Google Code这样的服务不同,GitHub的独特卖点在于从另外一个项目进行分支的简易性。为一个项目贡献代码非常简单:首先点击项目站点的“fork”的按钮,然后将代码检出并将修改加入到刚才分出的代码库中,最后通过内建的“pull request”机制向项目负责人申请代码合并。已经有人将GitHub称为代码玩家的MySpace。GitHub主要用Rails实现。如下我会讲解GitHub使用。

一、注册

Git已经变得非常流行,连Codeplex现在也已经主推Git。Github上更是充斥着各种高质量的开源项目,比如ruby on rails,cocos2d等等。

对于习惯Windows图形界面的程序员来讲,Github的使用是需要点时间和耐心的,然而最近Github发布了Github for Windows 则大大降低了学习成本和使用难度,他甚至比SVN都简单,好吧,你不信,我们来一步一步过一面:

1. 在GitHub for Windows下载Github for Windows,然后安装就不说了,下载客户端是一个悲催的过程

2. 登陆,安装好后打开GitHub,用你的GitHub账号登陆。需要注意的事,Github for Windows会帮你创建SSH Key,你打开邮件应该会收到邮件帮你创建SSH Key的信息,这也省了不少事:

3. 创建一个仓库。点击上面的 “+Add” 按钮创建一个新的仓库,输入相关信息:

4. 新建的仓库还没有真正地提交到本地仓库,相当于这只是一个new的修改,github简化了一些操作过程,对于任何修改,只需要添加评论就可以提交到本地仓库,然后这个时候才可以提交到远程仓库,所以我们来添加一条评论:

在每次添加一个评论之后,就相当于向本地仓库提交了一本版本,之后,就可以选择一个版本向远处仓库提交了。

5. 这个时候我们就可以Publish一个仓库了,Publish之后按钮就变成in sync文字,表示以后的修改提交就是同步,这个时候你到你的github上看应该就会多一个仓库了:

6. 添加项目,仓库在本地保存在一个文件夹中,Github for windows会监视这个文件夹,任何修改都会在仓库中看到,然后像上面一样添加评论就可以将修改提交到本地仓库,这里我们打开仓库目录,往里面添加一个项目:

7. 将修改提交到本地仓库,回到Github for windows中,已经可以看到刚才添加的项目了,同样,提交注释提交到本地仓库:

8. 最后,点击sync将本地仓库提交到github

9. 参与开源项目协同开发:

github现在已经深度支持Windows开发者了,现在每个在github的开源项目前面都有一个“Clone in Windows”的按钮,我们可以Clone任何我们感兴趣的开源项目,然后在地进行修改,参与开源项目的开发。

点击该按钮之后,浏览器会要求打开Github for Windows,并下载项目至本地,新建一个本地仓库:

10. 总结:github for Windows简化了一些概念和操作,并且几乎所有主要操作都通过图形界面来完成,基本上能完成日常写作了。这些主要的简化包括:

  1. 将push到远程仓库简化为一个同步按钮
  2. 将提交到本地仓库简化为只需要对一些列修改添加评论

更多的,还包括分支的建立和管理,这部分自己去探索吧,总之,github for Windows确实是一个非常好的工具。

【热身】github的使用的更多相关文章

  1. 搜刮一些开源项目的APP

    iOS完整App资源收集 <iOS完整app资源收集>  <GitHub 上有哪些完整的 iOS-App 源码值得参考?> <GitHub 上有哪些完整的 iOS-App ...

  2. Android查缺补漏(IPC篇)-- 进程间通讯基础知识热身

    本文作者:CodingBlock 文章链接:http://www.cnblogs.com/codingblock/p/8479282.html 在Android中进程间通信是比较难的一部分,同时又非常 ...

  3. 停下来,回头看 ——记2020BUAA软工第一次作业-热身!

    description: 'Mar 1st, 2020 - Mar 3rd, 2020' 项目 内容 这个作业属于哪个课程 2020春季计算机学院软件工程(罗杰 任建) 这个作业的要求在哪里 第一次作 ...

  4. 近期 github 机器学习热门项目top5

    磐创智能-专注机器学习深度学习的教程网站 http://panchuang.net/ 磐创AI-智能客服,聊天机器人,推荐系统 http://panchuangai.com/ [导读]:Github是 ...

  5. BUAA_2020_软件工程_热身作业

    项目 内容 这个作业属于哪个课程 2020春季计算机学院软件工程(罗杰 任建) 这个作业的要求在哪里 热身作业要求 我在这个课程的目标 了解软件工程的技术,掌握工程化开发的能力 这个作业在哪个具体方面 ...

  6. BUAA 2020 软件工程 热身作业

    BUAA 2020 软件工程 热身作业 Author: 17373051 郭骏 项目 内容 这个作业属于哪个课程 2020春季计算机学院软件工程(罗杰 任健) 这个作业的要求在哪里 第一次作业-热身! ...

  7. 【原】Github+Hexo+NextT搭建个人博客

    摘要 GitHub 是一个开源项目的托管网站,相信很多人都听过.在上面有很多高质量的项目代码,我们也可以把自己的项目代码托管到GitHub,与朋友们共享交流.GitHub Pages 是Github为 ...

  8. TODO:GitHub创建组织的步骤

    TODO:GitHub创建组织的步骤 使用GitHub进行团队合作,写这个步骤主要作用是为了OneTODO作为一个团队组织进行代码的分享,让更多人来参与. 使用帐号.密码登录GitHub 2.右上角加 ...

  9. GitHub实战系列汇总篇

    基础: 1.GitHub实战系列~1.环境部署+创建第一个文件 2015-12-9 http://www.cnblogs.com/dunitian/p/5034624.html 2.GitHub实战系 ...

随机推荐

  1. Category&nbsp;Protocol&nbsp;Exte…

    作者:韩俊强 总结以往方法: 继承是可以完成对类型的扩充,不仅能添加方法,也可以添加实例变量:/缺点:如果工程中有很多需要扩充类的使用,此时要用子类去完成替换,工作量非常大,还容易出错.下面通过例子过 ...

  2. python一行写不下,变多行

    python里一行写不下,拆成多行, \和() 两种方法 在一行末尾 加上" \",也就是空格加上\ a= 'sdfaf' \      'test' 注意两个对象都要独立,字符串 ...

  3. How to create DB2 user function easily by DB Query Analyzer 6.03

    How to create DB2user function easily by DB Query Analyzer 6.03 Ma Genfeng (Guangdong Unitoll Servic ...

  4. 看看腾讯是怎么做产品设计分析的 - 腾讯QQ音乐业务产品规划

  5. Linux Shell 只列出目录的方法

    在实际应用中,我们有时需要仅列出目录,下面是 4 种不同的方法. 1. 利用 ls 命令的 -d 选项: $ ls -d */ Desktop/ pic/ shell/ src/ 2. 利用 ls 命 ...

  6. UVa - 116 - Unidirectional TSP

    Background Problems that require minimum paths through some domain appear in many different areas of ...

  7. 在android C/C++ native编程(ndk)中使用logcat

    最近在研究Android 2.2 源代码的C/C++层,需要对代码进行一些调试,但是奇怪的是,直接添加LOGD("XXXXXXXX");,使用logcat却看不到任何输出,换成LO ...

  8. Android下VideoView的研究

    VideoView继承自SurfaceView,实现了MediaController.MediaPlayerControl的接口.在android系统中的包名为android.widget.Video ...

  9. 《java入门第一季》之面向对象

    之前的代码描述都是基于面向过程的,今天开始正式进入面向对象的世界.什么是对象?首先要区分类和对象的概念-- 现实世界中是如何描述一个事物的? 举例:学生 姓名,年龄,性别... 学习,吃饭,睡觉 属性 ...

  10. SpriteBuilder中的碰撞分类(Categories)和掩码(Masks)

    假如有2种对象player和触发器(trigger),当玩家进入到触发器区域时则由触发器对象通知所有注册过触发器通知的对象,然后由这些对象自行选择做一些事情,比如:阻碍player的前景,触发陷阱等等 ...