Git(一)git/github简介

1、基本概念

git:是免费的、分布式代码管理系统,可以方便的进行版本的控制。

github:是一个开源的代码托管网站,其是基于git的代码托管网站。

git最初是Torvalds2005年创建的,为了提升linux内核源码的管控。后来在2008年,基于git的代码托管网站Github上线,现在已是最好用的代码托管网站之一,其托管的内容已不限于linux代码。

2、关于gitsvn

在讨论git的时候,不可绕过的就是讨论分布式和集中式代码管理系统的区别,而集中式代码管理系统的代表软件就是svn。关于svngit之间的优劣,一直都有很多争论,它们之间存在众多区别:

A)git是分布式的,而svn是集中式的。如下图所示为分布式的一种典型情况:


分布式的话,可以通过克隆服务器代码而存在多个主版本的副本,每个副本都有完整的提交历史,即使主服务器挂掉,也可以正常的进行代码的本地提交和副本间的推送,不断更新本地的代码库。

集中式的好处是将代码放到一个主线版本库里更容易进行代码的管理,但缺点就是,一旦主服务器挂掉,那么所有人将不可能得到最新的代码,也就无法进行代码开发。

B)、内容完整性,便于回溯。Git会对作者的每一次更新加以详细的描述,显示出这次和上一次的差异。svn的每一次提交,都会将前一次的代码进行覆盖,并且不会显示出具体的更新点,一旦提交,自己想回溯就没有git那么容易。这里有一点,git不能识别二进制文件差异,所有不要企图在git仓提交二进制文件、exceliso等等。

C)GIT分支和SVN的分支不同。其中最关键的一点,你可以看完整的代码库,如果没有,可以用git clone个linux的完整代码库,然后用git branch -r命令看看,你会发现有几十个甚至近百个分支,如果你只用svn的话,你一定完全无法想象。但这就是git分支的优势,因为git是基于差异来管理分支的,其分支的代价极小,再结合第一点,所以其切换分支也极为方便和快捷。这一点上我认为git是优于svn的,之所以我不说完爆,是因为这一点要结合项目需求,你的项目不是android,不是linux,没有大量分支并行开发、合并的需求,其实用svn也是可以的。关于git实现的代码分支管理,只有你真正使用了,你就会知道它有多么的强大

D)、代码的修改简单。当作者做了一次新的更新的时候,在git上可以通过修改上次提交达到,而svn必须每次重新提交。

E)git支持离线提交,因为你第一次clone的代码包含之前的完整的提交历史,而离线提交是基于本地的历史进行修改。一旦联网后,它会将比较之前的历史,并将最近的有修改的记录提交上去。

此外,还有许多其他的一些区别,比如git是将内容按元数据方式存储,而svn是按文件,还有就是svn有而git没有一个全局的版本号等等之类。

从目前的使用来看,确实git的版本控制功能更加强大。很早之前没接触git的时候,觉得svn很好用,适合懒人,随手右键单价提交,但确实在分支管理等存在很多问题。

3、如何在github上建立自己的代码库

Github的存在极大的方便了开发者的代码托管,可以建立public或者private类型的版本库repository,建立自己的代码库如下:

S1、首先建立自己的github账户;

S2、建立自己的版本库repository,并记录下该URL

 

S3、下载github客户端软件,支持maclinuxwindowswindows三种版本,此外,加载一个gitshell界面,如下:

 

打开GitHubGitHub负责显示你自己的版本库、历史记录等,而具体的代码提交则通过Git Shell来进行。在GitHub可通过如下方式打开Git Shell进入自己的工作目录:

 

S4、下载版本,采用git clone URL将建立的版本库下载到本地:

 

S5、用cd myfisrtgit进入该版本文件夹,然后编辑自己的代码。编辑自己的代码时采用文本方式进行,不建议采用windows的记事本,因为记事本的编码方式与一般不同,会在头加一些二进制码作标记(每个文件开头添加了0xefbbbf(十六进制)的字符),建议采用notepad++方式进行编码。

S6、提交代码:

 

S7、在网上更新该版本

 

可以看到,当登入到版本库去查看的时候,可以看到我们的helloword.txt已经提交至对版本库里了,并且后面有相应的说明“This is a test”以及时间点。此外,git还有其他操作,比如分支版本的管理、远程仓库、用户认证等,后续在实际应用中还要在进行软件开发时再进行研究,也可参考网上资料。

3、OpenStack的代码下载

路径:OpenStack官网->wiki->keystone->source code,然后复制该URL,在git中用git clone URL即可将该ceilometer的社区代码下载到本地。此外,从github上将代码下载到本地,也可以在页面上采用fork操作进行。

 

可以看到,已经将社区的keystone代码检索到本地了。当然,这只是clone阶段,并没有向服务器推送代码的权利。

git的优缺点、社区代码fetchpush等等还是要在实际中自己去学习使用,这仅仅只是提出一些共性的通用点,后续再慢慢进行更新。

欢迎评论!

本文地址:http://blog.csdn.net/zhaole524/article/details/52566002


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值