Github使用简介
———————-
当我们的项目需要多人协作的时候,有一个公共的代码文档仓库就会很方便。由于网上最广泛使用的服务还是github.com,尽管自己最熟悉的是SVN,但还是为了能用上更好的服务而选择了github。
Github上的帮助页面有个Bootcamp的指引,实际上Windows和Mac系统都基本上可以通过github所提供的客户端进行便捷的管理,只需要点击Download Github for Mac/Windows下载安装就可以了。(注:后来发现github的客户端只支持最新版的OSX,若10.7以前的可以选用其他/更专业的git客户端,比如说SourceTree)
而Linux系统将会稍麻烦一点,需要按照指引一步一步做。Github上手步骤分成四步:
1. Set Up Git
2. Create a Repo
3. Fork A Repo
4. Be Social
第一步会告诉你如何通过git的命令行设置你的名字、帐号和SSH密钥,生成密钥之后还需要上传到自己的帐号设置里面,之后才可以进行其他操作。第二步是要如何创建一个repository,一般会包含一个最基本的README文件,因为空目录不会上传到repository上。第三步就是如果你希望对其他repository进行分支的更改,这适用在没有修改该repository的权限,或者不希望将自己的代码跟别人的repository混在一起的时候,就可以通过分支到自己的帐号上,用自己的repository进行修改,同时通过upstream来同步原始repository和自己的repository的代码。第四步介绍了如何在github上与其他用户的交流。在Linux下也有其他图形客户端,比如说RabbitVCS就挺好的,能够同时支持SVN, Git和Mercurial,使用的是windows下的Toitoise系列的风格。
但在linux下有一个地方要注意的,如果是github的private repository(私有仓库),只用git clone命令是无法拷贝到本地的(用其他客户端也不行),而需要用以下的命令行:
$ git clone git@github.com:username/projectname.git 经过前面几步之后,就已经可以用git来存放自己的代码了。后面还需要学习一下Git的版本控制理念,如怎样提交代码,怎样做分支的管理和版本控制,这要结合到团队成员之间如何配合管理提交代码。Git概念简述
———————
Github是一个提供了Git代码版本管理服务的服务器,使用版本控制和代码托管有什么好处呢?
我们可以通过github的网站随时随地浏览,我们的代码和文档资料(如:arduino-exercises)。
我们可以跟踪所有提交到服务器的更改(也就是如果你做了坏事都会有记录
,如:arduino-exercises的history)我们可以对现有的工作资料进行备份。如果碰巧你的硬盘坏了或者电脑丢了,起码网站上有一份备份。
我们可以持续地对自己的工作做更改。Git支持我们对现有的内容创建分支,保存快照,合并修改等,让我们可以不断地改进作品而不影响原有的版本。
以下是Git对文件管理流程的简介:
1. Checkout。第一次使用需要从远程服务器fetch并checkout HEAD来创建本地的工作目录,之后我们便可以在工作目录里任意地添加/删除/修改文件,然后提交到本地的仓库。
2. Add to Index。对于新添加的文件,我们要把它加到索引(Add to Index)里面,文件的修改才会进入Git的跟踪范围。
3. Commit。对于已添加索引的文件, 我们只需要在要保存更改的时候,做一个“提交到本地仓库”(Commit)的操作。那么该文件的更改便在本地有历史可寻。
4. Push/Pull。同步本地仓库(Local Repository)和远程仓库(Remote Repository)的记录。这里用的动词很形象,Push就是把本地仓库的记录推送到服务器上,而Pull就是把服务器的记录拉到本地的仓库。
这里稍微解释一下,由于Git是一个DVCS(Distributed Version Control System,分布式版本控制系统),不同于传统的CVS/SVN版本系统那样必须由一个中央服务器来管理所有的版本记录,它实际上每一个仓库都可独立运作,因此而称为分布式(Distributed)。Git Repos既可以是一个服务器的仓库,也可以是一个本地的文件仓库,可以存在与不同的文件夹里或别人的电脑上,它可以被无限制地fork/clone产生分支,并记下来它们的上游(upstream)是源自哪一个分支,这样当拥有相同upstream的仓库之间,就可以共享版本信息以进行版本合并操作。