一直以来都是做公司项目,根本没机会做几个开源项目.导致我的github账号下都没有几个项目.
(国内二线城市相对于一线, 整个互联网的认知都略显落后…
近来发动小伙伴都上github去做做汉化, 开发插件啥的, 结果小伙伴都不会用这厮…所以写出来传授一下吧…

一.Github介绍

Git是一个分布式的版本控制系统,最初由Linus Torvalds编写,用作Linux内核代码的管理。在推出后,Git在其它项目中也取得了很大成功,尤其是在Ruby社区中。(就像我们的SVN一样

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

原文: http://www.eoeandroid.com/thread-274556-1-1.html

快去注册账号!!

二.Github客户端

09年Github推出了自己的Github客户端, 一个Metro风格的本地化程序.
( 但我对Metro的UI一直抱有抵触情绪..完全不知道怎么上手(╯-_-)╯╧╧ 就不在这里介绍了..

这里我们主要介绍 Gib for Windows

点击下载, 安装, 一路下一步之后, 就得到了这个图标:

gitbash

就代表你成了!

三.创建你的项目

在Github上, 创建一个项目”New repository” 然后起名保存啥的就可以了.

然后如何把项目拉下来与本地同步呢, 如下操作:

这里首先会讲第一次设置账号的操作, 如果设置过一次, 就可以不用再操作了.


$ ssh-keygen -t rsa -C "your_email@youremail.com"

如上操作, 生成一个ssh-key, (类似证书啦, 文件存放地为: X:/Users/用户名/.ssh/id_rsa.pub

将你的ssh-key复制到github里, 进行授权
点右上角账户设置”Account settings”, 然后找到菜单”SSH Keys”
添加一个命名, 一般用计算机型号或者什么的来便于自己管理.


$ ssh -T git@github.com

输入上述代码后, 确认”Yes”后, 如果提示输入密码, 就说明可以正常连接了. 输入密码继续.


$ git config --global user.name"Firstname Lastname"
$ git config --global user.email"your_email@youremail.com"

设置一下客户端全局的账号和密码

然后这里, 我们就可以继续同步项目了:


$ cd [你的项目文件夹]
$ git init //初始化
$ git remote add [别名] [项目URL] // 添加远程git库

项目URL可以从你的项目页面右侧这里获得
giturl

当然, 也可以用clone, 但是我不建议, 当然, 如果你只为了看看代码 clone 是个更好的方案


$ git clone [项目URL]

remote add 和 clone 的区别是主控权的问题, remote add 只能控制自己的项目. clone 是复制别人的项目, 而你能否提交修改, 要看哪个项目的管理者是否把你列入了参与人.

上面讲的是代码方案, 也是我们最常用的. 新版的Git for windows 还有图形化界面.
程序菜单有一个 Git GUI 的图标, 打开它, 我们就可以更方便的创建管理项目了.

四.获取别人的项目

一般来说, 我们很少去添加项目管理人. 因为一个没见过的外国大叔, 很难想象是不是一个熊孩子….
所以, Github 提供了 “Fork” 功能:
gitfork
对, 点击某个项目的这个按钮, 就可以在我们自己的名下复制一个属于自己的独立项目.(很棒..
然后我们就可以如上加入我们的子项目, 然后修改

修改并提交到自己的Fork出来的项目后, 我们可以在 “Pull Requests” 下新建一个 “New pull requests”
将Fork出来的修改结果, 提交回对方的主项目.
对方应该会收到邮件提醒, 审核通过之后, 就可以正常发布了.

五.提交代码

熟悉SVN的用户来说, 就没什么了, 这两者的操作非常相似.
唯一不同的是, 提交的时候 Commit 并不会直接更新git库
所以如果确认可以发布的时候,需要这样


$ git commit -m '注释' // 提交代码
$ git push [别名] [分支branch] // 推送发布

六.更新源代码


$ git fetch [源别名]
$ git merge [别名]/[分支branch]

七.设定标签


$ git tag 1.0.0
$ git push [别名] --tags

关于命令神马的, 不熟悉的请用Git for windows带的右键菜单.
熟悉的可以看一下这个 Git参考手册