Git 和 GitHub

Wesley13
• 阅读 366

虽然大家使用的工具各有不同,但是相信每一个程序员都对SVN这种代码管理的工作方式很熟悉了。

今天了解一下流行的Git和Github,是因为在使用很多java开源类库时,发现很多都是使用github,例如Jenkins。

Git (/ɡɪt/) is a distributed revision control system with an emphasis on speed

Every Git working directory is a full-fledged repository with complete history and full revision tracking capabilities, not dependent on network access or a central server.

简单的说,Git拥有多个分布式repository。每一个都包含完整信息,都可独立工作。而不是像SVN一样,只有一个server,其他人只是使用客户端来访问server而已。

每次更改,都首先提交到本地repository。程序员们可以进行under-line development。

在需要的时候,连入网络,就可简单的和其他地方的一个或多个repository同步。

我在本地安装了一个MSysGit,是windows版的Git工具。安装后发现只有一个命令行界面,命令是unix-style的。

和熟悉的SVN使用的命令都几乎一样:

git status

git add

git commit

...

但是Git作为版本控制工具,虽然使用上和传统的SCM很像,但工作方式还是有很大不同:

Git is all about composing and saving snapshots of your project and then working with and comparing those snapshots

所以大家可以查看下面网址详细学习。

_一个很不错的介绍Git使用方法的网站:
_

http://gitref.org/index.html

关于Git的wiki也很不错,比较详细的描述了Git特殊的内部工作方式。但如果仅仅是想使用git,简单了解一下就行了:

http://en.wikipedia.org/wiki/Git

GitHub

在开发开源项目时,仍然需要一个中心的repository,让项目组的所有成员check in/out代码。

这就是GitHub的用途。正如GitHub这个名字,它和Git工具很好的结合在一起。

https://github.com/免费注册用户,就可以创建自己的repository。

(很可惜的是仅提供0.3G的免费空间,同时repository是公开的,任何人可以查看。。。想用更大的repository?或者个人的repository?付费吧。。。)

一旦repositroy创建成功,或加入其他的项目组,就可以方便的使用本地的Git工具将local的repository和在GitHub的repository方便的同步。

典型的工作流程是:更改代码->提交到本地repository->同步到Github。全部过程仅需几个命令即可完成,而且速度很快。

同步后,在本地就可以快速的查看所有相关history,提高了不少效率。同时在Github上可以浏览所有repository的内容,以及各个Branch的内容等等,开源嘛~

Github还有一个很好的功能:be social

注册成功后,就可以follow你感兴趣的人。这不仅仅是为了娱乐和学习,更重要的是,你可以follow你的合作伙伴,从而及时知道他们做了什么更改,是否会影响你的更改,是否需要merge更改。在合作开发开源项目的时候,这个功能实在太有用了。

关于Github的使用方法,官网上注册时有step by step的指导,非常非常简单。。。而且logo是小猫猫,很可爱的啊~

总之Git和GitHub就是工具而已,用着试试看就明白是怎么回事儿了。

点赞
收藏
评论区
推荐文章
秃头王路飞 秃头王路飞
5个月前
webpack5手撸vue2脚手架
webpack5手撸vue相信工作个12年的小伙伴们在面试的时候多多少少怕被问到关于webpack方面的知识,本菜鸟最近闲来无事,就尝试了手撸了下vue2的脚手架,第一次发帖实在是没有经验,望海涵。languageJavaScript"name":"vuecliversion2","version":"1.0.0","desc
浅梦一笑 浅梦一笑
5个月前
初学 Python 需要安装哪些软件?超级实用,小白必看!
编程这个东西是真的奇妙。对于懂得的人来说,会觉得这个工具是多么的好用、有趣,而对于小白来说,就如同大山一样。其实这个都可以理解,大家都是这样过来的。那么接下来就说一下python相关的东西吧,并说一下我对编程的理解。本人也是小白一名,如有不对的地方,还请各位大神指出01名词解释:如果在编程方面接触的比较少,那么对于软件这一块,有几个名词一定要了解,比如开发环
blmius blmius
1年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
技术小男生 技术小男生
5个月前
linux环境jdk环境变量配置
1:编辑系统配置文件vi/etc/profile2:按字母键i进入编辑模式,在最底部添加内容:JAVAHOME/opt/jdk1.8.0152CLASSPATH.:$JAVAHOME/lib/dt.jar:$JAVAHOME/lib/tools.jarPATH$JAVAHOME/bin:$PATH3:生效配置
光头强的博客 光头强的博客
5个月前
Java面向对象试题
1、请创建一个Animal动物类,要求有方法eat()方法,方法输出一条语句“吃东西”。创建一个接口A,接口里有一个抽象方法fly()。创建一个Bird类继承Animal类并实现接口A里的方法输出一条有语句“鸟儿飞翔”,重写eat()方法输出一条语句“鸟儿吃虫”。在Test类中向上转型创建b对象,调用eat方法。然后向下转型调用eat()方
刚刚好 刚刚好
5个月前
css问题
1、在IOS中图片不显示(给图片加了圆角或者img没有父级)<div<imgsrc""/</divdiv{width:20px;height:20px;borderradius:20px;overflow:h
小森森 小森森
5个月前
校园表白墙微信小程序V1.0 SayLove -基于微信云开发-一键快速搭建,开箱即用
后续会继续更新,敬请期待2.0全新版本欢迎添加左边的微信一起探讨!项目地址:(https://www.aliyun.com/activity/daily/bestoffer?userCodesskuuw5n)\2.Bug修复更新日历2.情侣脸功能大家不要使用了,现在阿里云的接口已经要收费了(土豪请随意),\\和注意
晴空闲云 晴空闲云
5个月前
css中box-sizing解放盒子实际宽高计算
我们知道传统的盒子模型,如果增加内边距padding和边框border,那么会撑大整个盒子,造成盒子的宽度不好计算,在实务中特别不方便。boxsizing可以设置盒模型的方式,可以很好的设置固定宽高的盒模型。盒子宽高计算假如我们设置如下盒子:宽度和高度均为200px,那么这会这个盒子实际的宽高就都是200px。但是当我们设置这个盒子的边框和内间距的时候,那
前端尾随者 前端尾随者
1年前
sourceTree 添加 ssh key 方法
1.使用git客户的生成公私钥:id\rsa、id\rsa.pub1.1设置Git的username和email:$gitconfigglobaluser.name"xxx"$gitconfig\globaluser.email"xxx.mail@xxx.com"1.2.生成SSH密钥过程:1.2.1.检查是不是已经存在密钥(
NVIDIA安培架构下MIG技术分析
关键词:NVIDIA、MIG、安培一什么是MIG2020年5月,NVIDIA发布了最新的GPU架构:安培,以及基于安培架构的最新的GPU:A100。安培提供了许多新的特性,MIG是其中一项非常重要的新特性。MIG的全名是MultiInstanceGPU。NVIDIA安培架构中的MIG模式可以在A100GPU上并行运行七个作业。多实