GIT 快速上手

啥是GIT

创建Linux的大佬 Linus ,花了两周时间自己用C写的一个分布式版本控制系统。

在2002年以前,世界各地的志愿者把源代码文件通过diff的方式发给Linus,然后由Linus本人通过手工方式合并代码!

为什么Linus不把Linux代码放到版本控制系统里呢?

不是有CVS、SVN这些免费的版本控制系统吗?因为Linus坚定地反对CVS和SVN,这些集中式的版本控制系统不但速度慢,而且必须联网才能使用。有一些商用的版本控制系统,虽然比CVS、SVN好用,但那是付费的,和Linux的开源精神不符。

Git迅速成为最流行的分布式版本控制系统,尤其是2008年,GitHub网站上线了,它为开源项目免费提供Git存储,无数开源项目开始迁移至GitHub,包括jQuery,PHP,Ruby等等。

 

集中式vs分布式

集中式版本控制系统,版本库是集中存放在中央服务器的,而干活的时候,用的都是自己的电脑,所以要先从中央服务器取得最新的版本,然后开始干活,干完活了,再把自己的活推送给中央服务器。中央服务器就好比是一个图书馆,你要改一本书,必须先从图书馆借出来,然后回到家自己改,改完了,再放回图书馆。

集中式模型

 

集中式版本控制系统最大毛病是必须联网才能工作。遇到网速慢就十分影响工作效率。

分布式就没有“中央服务器”,每个人的电脑都是一个完整的版本库,工作的时候不需要联网(版本库就在个人电脑上),每个人的电脑上都是一个完整的版本库。分布式版本控制系统通常也有一台充当“中央服务器"的电脑,但是该服务器的作用仅仅是方便大家的修改,没他照样干活。

 

 

以下是Scrat学习 Git 时制作的Xmind。

 

下面着重讲几个命令:

Git Pull

拉取远程服务器上代码并合并到本地仓库。

1

2

3

4

5

$git checkout localbranch

$git pull origin master

$git branch

master 

*localbranch

上面的命令会将远程服务器上的master分支合并到localbranch中。

 

Git Fetch

拉取不合并。

1

2

3

4

5

6

$git checkout localbranch

$git fetch origin remotebranch

$git branch

master

*localbranch

remotebranch

获取 remote branch, 然后创建一个本地copy,你不应该直接对这个copy做任何的操作,而应该应该创建一个本地分支,然后在本地分支上进行工作。

 

Git Clone

clone将会克隆一个本地厂库,最初的git命令。

1

2

3

4

5

$cd newfolder

$git clone git@github.com:whatever/something.git

$git branch

*master

remotebranch

clone会为它被克隆的远程repo创建名为“origin”的local repo,并为远程repo的活动分支创建一个本地分支以及远程跟踪分支。

 

Git rebase

这个命令相当的cool,  你对当前分支所作的任何改变都被保存到一个临时区域,因此你的分支将会和改变之前一样干净。如果你用git pull -rebase,git将会获取远程的改变,遍历当前本地分支,然后替换你当前分支的所有改动。

 

Finally

如果你在使用过程中遇到了问题,使用git branch -a, 它会显示本地厂库的所有分支:本地的,远程的。这是一个很好的杀手锏,请记住,git bracches只是一个pointer。所以为了能够处理这些提交请求,你需要一个本地分支,通过本地分支你可以获取这些提交。

 

参考:https://www.liaoxuefeng.com/wiki/896043488029600

更多: Python目录

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值