前言:有时候在公司上班时自己写了一些代码,打算下班回家后继续写,或者在家修改好的代码第二天要拷到公司继续完善,代码就经常要在这两者之间来回同步,通常情况下我用网盘或者U盘,但是实在是很麻烦,不断的备份和重命名,而且还非常容易覆盖出错,所以决定使用时下非常流行的 Git 和 GitHub 来管理自己的代码。

1.Git 与 GitHub

Git 是 C语言开发的分布式版本控制系统,GitHub 是一个基于Git的代码托管平台,同时也是全球最流行的开源项目(包括 Git , PHP , jQuery , Ruby , Mongodb , Zendframework/Zf2 , Facebook , WordPress , GitHub , Twitter , Cakephp ,Yii 等)的托管站点。Github 的付费用户可以建立私人仓库,免费用户只能使用公用仓库,即代码要公开。

Git 最初是为帮助管理 Linux 内核而开发的开源的版本控制软件,2012年5月 GitHub 发布了为 Windows 平台开发者提供的 Git 图形客户端:GitHub for Windows,它可以处理大部分常用版本控制任务,可以创建版本库,向本地版本库递交补丁,在本地和远程版本库之间同步。除了管理 GitHub 库,还可以管理其他的 Git 库。

GitHub for Windows ( G4W ) 是基于 MSysGit ( 即 Git for Windows,它是 Git 版本控制系统在 Windows 下的版本 )的,Windows 用户可以使用 MSysGit 配合图形界面软件 TortoiseSVN 的 Git 版本:TortoiseGit,也可以使用 G4W 或其他的客户端。

2.使用 GitHub 和 GitHub for Windows 创建、同步仓库和项目

①登录GitHub ( https://github.com/ ),注册完之后,创建仓库( New repository ),如图:

②填写仓库名称和描述,不需要勾选 Initialize this repository with a README。

③点击"Create repository",得到地址 https://github.com/dee0912/myRepository.git

也可以使用 G4W( v2.4.1.2 ) 来创建仓库:

①下载地址:https://windows.github.com/ ,只支持Vista,7和8 ),使用 G4W 可省去使用命令行将自己的SSH公钥添加到 GitHub 帐户里,以验证自己的身份,获得提交的权限,客户端会自动为你添加。

在上面的地址下载安装( Win7下 ) GitHubSetup.exe,安装过程中会自动安装.NET Framework:

.NET Framework安装完之后就开始安装 G4W:

在这期间可以干点别的;)

②装完之后,登录客户端:

而且桌面上多了两个图标:

登录之后会收到一封邮件,里面会有你的SSH key。

③此时可以使用客户端在本地创建仓库了:

④创建好之后显示:

⑤这个时候可以提交到远程仓库,选择Publish Repository:

⑥此时客户端 Publish Repository 变成了Sync,表示以后每次修改之后的提交就是同步到远程服务器:

⑦此时登录网页版GitHub,可以看到多了一个仓库:

⑧在仓库中添加项目,添加完之后客户端多了栏目Uncommitted changes:

⑨展开Uncommitted changes,添加完描述之后,选择Commit to master:

最后,点击Sync将本地仓库提交到GitHub,同步完之后登录网页版,就能看到自己的项目:

使用G4W创建、同步仓库和项目先写到这里。更详细的代码管理以后再记录。

3.在 GitHub 上参与开源项目

①在GitHub上为感兴趣的开源程序添砖加瓦,可以进到该项目的主页,选择Fork,此时在自己的GitHub账户下会出现一个相同项目的备份:

以后你对项目进行的修改、提交和贡献都在这个备份仓库中进行。

②选择Clone in Desktop或者Download ZIP,把项目下载至本地:

之后就可以修改、完善、增加内容,提交到你的GitHub仓库中

想要把你的修改合并到项目的主分支并最终生效,就需要申请一个pull操作并等待项目创建者进行合并操作。进入你帐户下项目的主页,点击pull requests->New pull request,点击合并链接请求合并,至此操作结束,接下来就是项目创建者要做的事情了,如果他check提交的文件内容后,认为可以可并那么就会响应你的pull请求,如果觉得不可以合并就不会响应pull请求。只有在pull请求被响应后,你提交的代码修改内容才会同步到主项目中去。

更多阅读:蒋鑫 GitHUb颜海镜 我的 git 笔记

GitHub 初探的更多相关文章

  1. Git常用命令及使用,GitLab/GitHub初探,Git/Svn区别

    Git安装配置及常用命令 0 Git本地分支管理 1 Git远程分支管理 2 Git Tag标签管理 3 Git Log日志 4 其它高级命令 5 常规使用及介绍 6 角色权限 7 分支定义 8 一般 ...

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

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

  3. 页面定制CSS代码初探(四):cnblogs使用Github引用样式

    前言 对于用惯了Github的人来说,眼里的引用应该是这样的 "Talk is cheap. Show me the code" -- Linus Torvalds 然而实际上cn ...

  4. [Jenkins][GitHub]2 持续集成环境初探

    预计阅读时间:30分钟 部署环境:Jenkins ver. 2.61 + Centos7 + Java 1.8 参考链接: http://www.jianshu.com/p/22b7860b4e81 ...

  5. 初探CI,Github调戏Action手记——自动构建并发布

    前言 最近在做脚本的说明文档时使用了vuepress这个东西 前端实在是菜,只能随便写写了 正常写完md文件之后推送至github做版本控制 而前端页面的生成则是在本地,部署也是在本地手工进行 一套下 ...

  6. 陋居寡闻,初探Github CLI For Windows,开启命令行撸铁时代

    简介 gh is GitHub on the command line. It brings pull requests, issues, and other GitHub concepts to t ...

  7. github安装&初探

    主要记录安装中的问题: 1 centos 5和6的epel源需要不同的包来更新 Centos 5.x wget http://dl.fedoraproject.org/pub/epel/5/x86_6 ...

  8. CSharpGL(8)使用3D纹理渲染体数据 (Volume Rendering) 初探

    CSharpGL(8)使用3D纹理渲染体数据 (Volume Rendering) 初探 2016-08-13 由于CSharpGL一直在更新,现在这个教程已经不适用最新的代码了.CSharpGL源码 ...

  9. 从273二手车的M站点初探js模块化编程

    前言 这几天在看273M站点时被他们的页面交互方式所吸引,他们的首页是采用三次加载+分页的方式.也就说分为大分页和小分页两种交互.大分页就是通过分页按钮来操作,小分页是通过下拉(向下滑动)时异步加载数 ...

随机推荐

  1. Hibernate常见问题

    问题1,hql条件查询报错 执行Query session.createQuery(hql) 报错误直接跳到finally 解决方案 加入 <prop key="hibernate.q ...

  2. CentOS下配置Hadoop集群:java.net.NoRouteToHostException: No route to host问题的解决

    我用的是hadoop 1.2.1 遇到的问题是: hadoop中datanode无法启动,报Caused by: java.net.NoRouteToHostException: No route t ...

  3. scp 指定端口

    scp -P33033 zp.tar root@111.222.123.01:/da1/web/zhaopin.shouhuobao.com #sshd的端口指定的是33033

  4. async/await 异步编程

    前言 最近在学习Web Api框架的时候接触到了async/await,这个特性是.NET 4.5引入的,由于之前对于异步编程不是很了解,所以花费了一些时间学习一下相关的知识,并整理成这篇博客,如果在 ...

  5. Struts2文件上传和下载(原理)

    转自:http://zhou568xiao.iteye.com/blog/220732 1.    文件上传的原理:表单元素的enctype属性指定的是表单数据的编码方式,该属性有3个值:1)     ...

  6. 神经网络:多层网络与C++实现

    相关源码可参考最新的实现:https://github.com/ronnyyoung/EasyML ,中的neural_network模块,后持续更新,包括加入CNN的结构. 一.引言 在前一篇关于神 ...

  7. 电赛初探(一)——正弦波、方波、锯齿波转换

    一.题目要求: 1.使用555做出脉冲方波 2.使用TL084运放做出方波和锯齿波 3.使用TLM314稳压做直流偏置 4.方波要求峰峰值为1V,正弦波要求峰值为0~2V,锯齿波要求峰峰值为1V. 二 ...

  8. C#学习笔记(七)——定义类

    一.C#中类的定义 1.类的定义 class Myclass { } 默认情况下是类是内部的,即外部的项目是不可以访问这个类,相当于加internal来修饰.但实际上是不需要加入的. 如果要指定类是公 ...

  9. cocos2dx游戏开发——微信打飞机学习笔记(十)——碰撞检测的搭建

    一.七说八说        大家都发现了= =,做了那么多,发现就是摆设,完全没有打飞机的感觉,没有实现碰撞的监测.比如说呢,子弹和敌机,玩家与敌机就是需要有碰撞检测的说,然后在这篇我想会很长很长的教 ...

  10. ContainerBase.addChild: start: org.apache.catalina.LifecycleException: Failed to start component解决

    第一:先确定一下开发流程是否正确 1.写好servlet组件类 2.写好web.xml文件--向服务器介绍组件 3.发布--就是拷贝 注意:要拷贝包结构,不要只拷贝组件类文件 另外,拷贝的是.clas ...