Git 和 GitHub

Wesley13
• 阅读 452

虽然大家使用的工具各有不同,但是相信每一个程序员都对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就是工具而已,用着试试看就明白是怎么回事儿了。

点赞
收藏
评论区
推荐文章
blmius blmius
2年前
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
前端尾随者 前端尾随者
2年前
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.检查是不是已经存在密钥(
Jacquelyn38 Jacquelyn38
2年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
Easter79 Easter79
2年前
Twitter的分布式自增ID算法snowflake (Java版)
概述分布式系统中,有一些需要使用全局唯一ID的场景,这种时候为了防止ID冲突可以使用36位的UUID,但是UUID有一些缺点,首先他相对比较长,另外UUID一般是无序的。有些时候我们希望能使用一种简单一些的ID,并且希望ID能够按照时间有序生成。而twitter的snowflake解决了这种需求,最初Twitter把存储系统从MySQL迁移
Wesley13 Wesley13
2年前
mysql设置时区
mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0
Wesley13 Wesley13
2年前
00:Java简单了解
浅谈Java之概述Java是SUN(StanfordUniversityNetwork),斯坦福大学网络公司)1995年推出的一门高级编程语言。Java是一种面向Internet的编程语言。随着Java技术在web方面的不断成熟,已经成为Web应用程序的首选开发语言。Java是简单易学,完全面向对象,安全可靠,与平台无关的编程语言。
Stella981 Stella981
2年前
GitHub和SVN的区别
GitHub和SVN的区别之前用的版本控制系统是SVN,但是最近因为流行使用GitHub,这篇文章认识一下Git和SVN的区别。1)Git是分布式的,SVN不是: 这是git和其它非分布式的版本控制系统,例如SVN,CVS等,最核心的区别。好处是跟其他同事不会有太多的冲突,自己写的代码放在自己电脑上
Wesley13 Wesley13
2年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
Python进阶者 Python进阶者
2个月前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这