关于为什么使用github,网上已经有很多讨论了。当然选择还有google code, Bitbucket,sourceforge。github有如下优势:

1. github更有利于开源项目的发展

source forge并没有充分体现这一点,它更像一个开源软件下载站。至于Google Code,这是个传奇。但是已经被新CEO布林颁布的大扫除政策打死了,属于边缘化业务,Google不会投入新精力了,只是碍于原本有很多项目依旧运行在Google Code上,所以才没有像Google Reader一样彻底关闭。但是基本上活跃用户都迁走了。



在github上使用开源项目的流程是:

a. 下载,可以直接下载或者git clone下来,可以下载当前版本也可以下载某个分支,或者某个tag,甚至是某个commit

b. 使用(这个跟sf差不多了)

c. 修改,直接fork一个就可以改了,改完可以给作者发个pull request,这样才能让开源项目不断的完善起来

github 让这一切都变得简单,直接;不像很久以前的开源界,想要贡献点代码,你还得先进mail list,先帮着解答,时机成熟了再让你改点bug

2. github更方便沟通

任何人可以给项目创建issue, 写上特性需求或者报告bug,作者或项目成员会很快做出回应

在 sf上,作者和项目成员都不知道在哪,只有在版本发布的时候会在上面更新一下

3. github引入了社交元素

github 上的用户是可以follow别人的,也可以watch某个项目

这很重要,可以每天都多了解一点点,每天多进步一点点

唯一不足的地方就是没有像twitter那样,有人follow会发一封email通知下,让你看看是不是要回fo

4. github更开放

github提供众多的api,可以跟多数管理服务整合

网站上有大量的帮助文档,从 git的入门到github的使用都有,非常详细、图文并茂

官方博客经常发布一些技术文章,内容涉及故障处理过程,性能优化,各种技术解决方案的选择思路

此外,可以为项目创建静态网站,并且没有任何的限制,无广告

这个功能被很多人用于托管博客,我的博客就是建在这上面,免费

5. github还在快速发展

从最初github发展时只具备基本的源代码托管功能,到速度的提升(迁至rackspace使国内用户访问飞快),到gist的推出,到wiki的版本化,到pull request的出现。

因为还有一大群不明真相的群众扎根在sf,还不知道github或者还不了解 github有多优秀他们会觉得sourceforge已经非常好了,足够使用,直到有一天,他们真正被github的魅力所吸引所以,我们在很长的一段时间内都会看到,知名项目一个接一个地慢慢往github上移最终,sf的创始人会说:妈的,老子也移过去算了。以上内容转自http://www.cnblogs.com/draem0507/articles/2151162.html。知乎上也有很精彩的讨论:GitHub、Bitbucket、Google
Code 各有哪些优缺点?

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

如何使用github?

首先去github.com注册账号。windows的客户端我用的是官方的:http://windows.github.com/。当然据说msysgit+TortoiseGit也不错。官方有个15分钟的training不错:http://try.github.com/。Refer to http://training.github.com/ for more trainings.

关于配置,因为git默认采用的https协议,每次的pull(get from git server)/push(upload the local copies to git server)都需要输入密码,因此可以使用ssh key的方式去认证。方法如下:打开Git Shell在其中输入如下命令:ssh-genkey -t rsa -C "email@address"。之后会让你选择是否对存放SSH
Key的文件夹进行加密,选择默认值就可以了。在用户的目录下的有新生成的.ssh 文件夹,复制 id_rsa.pub文件内容,设置到github账户中:登陆你的GitHub账户,依次点击Account Settings >SSH Public Keys >
Add another public key,把id_rsa.pub中的内容拷贝进去 。使用ssh -T git@github.com可以验证设置是否正确:

接下来要使用git shell 设置账号信息:

首先,git要求使用者必须提供自己的身份标识,为此我们需要在git bash中执行以下命令:

git config --global user.name  'anzhsoft'
git config --global user.email anzhsoft@gmail.com

接下来可以将本地的project上传到githcd Project_pathgit init ##在当前目录下生成一个隐藏目录(.git),这个目录就是git用来管理软件版本的仓库。

cd project_path
## 1 initialize the project
git init
##it will generate the dir .git under the project_path, which is used to manage the current repository
## 2 connect the remote git server
git remote add origin git@github.com:anzhsoft/repository.git
## 3 add the items
git add .
## 4 commit
git commit -m "initial commit"
## 5 push to server
git push -u origin master

常见错误可以见 http://blog.csdn.net/dengjianqiang2011/article/details/9260435

如果你在create repository时添加了readme,license等文件,那么##5会出现一些错误:

To git@github.com:anzhsoft/Readings.git
! [rejected] master -> master (fetch first)
error: failed to push some refs to 'git@github.com:anzhsoft/Readings.git'
hint: Updates were rejected because the remote contains work that you do
hint: not have locally. This is usually caused by another repository pushin
hint: to the same ref. You may want to first merge the remote changes (e.g.
hint: 'git pull') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.

直接force这个push就可以了:

git push -f origin master

最后广告贴: welcome to https://github.com/anzhsoft

使用github管理你的代码的更多相关文章

  1. Github管理自己的代码-远程篇

    一.名词解释 Git Git是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目. Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版 ...

  2. 在MacOSX下使用Github管理Xcode代码

    版本控制应该算是每个程序员所必备的技能,这个重要性,我就不多说了哈.现在版本控制基本上就是两种途径:SVN和Git.对于SVN我并不是非常了解,只知道在Windows下非常实用,但是在MacOSX下, ...

  3. 构建微服务开发环境7————使用Github管理项目代码的版本

    [内容指引] 1.注册GitHub帐号: 2.下载Github Desktop客户端: 3.macOS安装Github Desktop客户端: 4.windows安装Github Desktop客户端 ...

  4. 使用git和github管理项目代码

    以前不知道使用代码管理工具,最后写的一些东西都没有了,由于硬盘坏了或者不小心格式化了之类的,后来使用了Git 和Github来托管自己的代码和读书笔记方便了不少,到哪里只要有网就可以把自己的东西拷贝下 ...

  5. 使用Git和Github来管理自己的代码和笔记

    一.Github注册 1.先注册github.com的账号,官方网站: https://github.com/ 2.登录 3.创建仓库,仓库分公开的和私有的,公开的是免费的,私有的是收费的.我现在创建 ...

  6. GitHub管理代码-随笔

    公司一直用的SVN进行项目管理,平时便自己折腾了下Git,这里做下GitHub的最简单的记录... 在git上创建仓库等就免谈了,网上也有好多教程,直接从创建之后记录: 在github的readme文 ...

  7. 使用git和github管理自己的项目---基础操作学习[转]

    原文: https://segmentfault.com/a/1190000003728094 我是通过看廖雪峰的git教程学习的,真的是极好的,以下是我学习过程中的总结,记录下来,方便自己参考以熟悉 ...

  8. 使用github管理Eclipse分布式项目开发

    使用github管理Eclipse分布式项目开发 老关我在前面的博文(github管理iOS分布式项目开发)中介绍了github管理iOS分布式开发,今天老关将向大家介绍使用github管 理Ecli ...

  9. (转)GitHub Desktop 拉取 GitHub上 Tag 版本代码

    转自:GitHub Desktop 拉取 GitHub上 Tag 版本代码 一直在使用 GitHub Desktop 图形化 git 管理工具,统一项目框架版本时需要切换到ThinkPHP Tag 分 ...

随机推荐

  1. 利用Apach ab对nodejs进行并发负载的压力测试

    大家应该都有听过,nodejs性能优越,并发也很好之类的话,那我们用Apache ab对node这个空框架测试一下,然后再对一些网站测试一下,或或少一定的参考意义把. Apache ab测试工具是模拟 ...

  2. 安装Leanote极客范的云笔记

    前言 在这个互联网知识呈爆炸增长的时代,作为一个程序员要掌握的知识越来越多,然再好的记性也不如烂笔头,有了笔记我们就是可以时常扒拉扒拉以前的知识,顺便可以整理下自己的知识体系. 如今市面上云笔记产品, ...

  3. 网络协议 finally{ return问题 注入问题 jdbc注册驱动问题 PreparedStatement 连接池目的 1.2.1DBCP连接池 C3P0连接池 MYSQL两种方式进行实物管理 JDBC事务 DBUtils事务 ThreadLocal 事务特性 并发访问 隔离级别

    1.1.1 API详解:注册驱动 DriverManager.registerDriver(new com.mysql.jdbc.Driver());不建议使用 原因有2个: >导致驱动被注册2 ...

  4. Java中的内存分配

    Java程序在运行时,需要在内存中分配空间,为了提高效率,就对空间进行了不同区域的划分,因为每一片区域否有特定的处理数据方式和内存管理方式. 1.栈存储局部变量 2.堆存储new出来的东西 3.方法区 ...

  5. Git 常用命令速查表

  6. Latex 文本编辑技巧

    临时取消首行缩进 \noindent 生成随机文本 \usepackage{lipsum} \begin{document} \lipsum \end{document} 多栏模式 \usepacka ...

  7. Scala:类,对象和特征(接口)

    http://blog.csdn.net/pipisorry/article/details/52902609 Scala类和对象 类是对象的抽象,而对象是类的具体实例.类是抽象的,不占用内存,而对象 ...

  8. ROS机器人程序设计(原书第2版)补充资料 (捌) 第八章 导航功能包集入门 navigation

    ROS机器人程序设计(原书第2版)补充资料 (捌) 第八章 导航功能包集入门 navigation 书中,大部分出现hydro的地方,直接替换为indigo或jade或kinetic,即可在对应版本中 ...

  9. spark运算结果写入hbase及优化

    在Spark中利用map-reduce或者spark sql分析了数据之后,我们需要将结果写入外部文件系统. 本文,以向Hbase中写数据,为例,说一下,Spark怎么向Hbase中写数据. 首先,需 ...

  10. Shell脚本生成网页版相册浏览器

    今天学到了一招,那就是使用脚本制作一款网页版相册浏览器.先上图吧. 必备基础 操作系统: 以linux为内核的操作系统都行 编程语言:Shell(bash)脚本,相关基础知识即可 下载工具:wget ...