Git总结(与SVN对比)

版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/xiezhongyuan07/article/details/79390619

目前我们遇到的问题有三个:

1. 将项目代码从svn迁移到git(一个项目只需要一个人做就可以了)

2. Git的安装与配置。(从一台没有安装过git的机器,到我们可以使用。每个人只需要配置一次。)

3. 就是我们使用git管理我们的代码。(重点)

 

Git简单介绍:git是一款免费的、开源的分布式版本管理控制系统(工具)。和SVN一样,都是管理我们代码文档用的。

 

Git比SVN相比有什么区别呢?

1. 最核心的区别就是Git是分布式的, SVN是集中式的。SVN必须有一个服务器版本库就放在一个中央服务器。所有开发人员都是与服务器进行交互的。(一般的开发流程就是干活时候从中央服务器得到最新的版本,然后干活,干完后需药把自己做的工作推送到中央服务器。)

Git不需要有中心服务器,我们每台电脑拥有的东西都是一样的。我们使用Git并且有个中心服务器,仅仅是为了方便交换大家的修改,但是这个服务器的地位和我们每个人的PC是一样的。我们可以把它当做一个开发者的pc就可以就是为了大家代码容易交流不关机用的。没有它大家一样可以工作,只不过“交换”修改不方便而已。(所以git的开发流程是工作的时候不需要联网了,因为版本库就在你的电脑上。比如你在自己的电脑上修改了文件A,你同事也在她的电脑上修改了文件A,这时,你们之间只需要把自己的修改推送给对方。就可以看到了对方的修改了。)

Git更倾向于分布式开发,每台计算机上都有一个完整的本地版本库。和服务器上的一模一样。

去中心化有什么好处呢?

1.1操作处理速度快。

在Git中的绝大多数操作都是访问的本地文件和资源,不必联网就可以看到所有的历史版本记录,所以,处理起来速度也是飞快的。而SVN必须联网从中心服务器上下载下来数据才可以看到。

 

1.3 安全性更高。因为每个人的电脑都有完整的版本库,所以某一个电脑坏掉了不要紧,随便从其他人哪里复制一个就可以了。而SVN集中式版本控制的中央服务器要是出了问题,所有人都没法干活了。

 

1.2 不依赖网络。

SVN断开网络就没有commit代码。但是Git可以先Commit到本地仓库。使用SVN在没有网络的情况下,当然可以继续本地开发,但是不能commit代码,长时间不commit代码会丢失大量的开发进程的历史记录。有个比喻:不能commit代码就像word中不能save一样危险。所以我们在使用git开发过程中,commit一定要频繁,速度很快,又能记录你的改动。如果一天commit一次,那么中间的修改,就再找不回来了。

(svn的commit速度慢,但git是提交到本地,几乎不占用时间。)

 

说到这里,我们就先说一下svn和git的commit的不同。

在SVN中当你提交代码时候,它将直接记录到(同步)中心版本库,当你发现你的代码有严重的问题是,你已经无法阻止事情的发生了。

在git 中完全不是这样的,commit相当于你将你的代码提交到本地的版本库里了,只需“推”到(git push)主要的版本库即可。相当于commit提交到本地,然后push其实执行的同步(Sync)操作。两步操作。不至于马上影响到所有的开发人员。

 

就算没有网络也可以进行,Commit,查看历史记录,创建分支,合并等操作,等到网络再次连接上就Push到Server端。

 

2. 分支功能:

Svn 创建分支,其实就是创建了一个新的文件夹(目录)并拥有实际的文件的。相当于拷贝了一份源文件。如果一个成员创建了一个分支,将会影响所有的人。那么所有的人都将拥有同样的分支。

Git创建分支,并没有创建文件夹,你甚至看不到任何的改变。用户可以在同一个文件夹中,快速的切换不同的分支。创建一个分支,就是多了一个索引文件,记录这个分支的变化。占用很小的空间。

每个分支,都是独立的,在这个分支里想做什么都可以,对其他分支没有一点影响。

既然这样,大家就应该能想象得到。一个svn项目创建了几个分支,就相当于把源码复制拷贝了多少次。而git项目创建几个分支,仅仅是多了几个索引,占用很小的空间。所以在git管理项目中,我们可以创建任意多的分支,(开支小)。

所以,clone新的项目的时候,git也比svn项目快的太多了。

3. Git具开发代码审核功能,各个成员请求将自己的分支合并到主分支上。管理人员对认为不符合规范的代码,会拒绝合并到主分支。保证整体代码的规范与安全。

Git工作流程


那我们说过工作流了,就具体务实一点,我们具体该怎么做。

1. 安装配置好git(就是发给大家的资料,大家按照一般就是没问题的)

2. 在你的pc上的任意位置,运行git clone url命令,将远程版本库下载到本地。这样你本地就拥有了和中心服务器一样的本库。

3. 日常会碰到的场景


3.1创建了一个新文件,需要添加到版本库里使用git add filename命令,我想保存一下,使用git commit -m ..... 我想把我改变的推送给其他人(服务器)git push -u origin master(提交代码)。

3.2我想把别人改变的代码拉去过来,git pull.

3.3原来的有个文件,想删除了,使用git rm file(会将文件从暂存区与磁盘上删除)

3.4

3.5我已经将更改的内容提交到暂存区了,但是我发现提交的代码有问题,想恢复做出修改之前的样子git reset HEAD(取消缓存区的内容)

4. 新收到一个任务,我想创建一个分支

(后续更新)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值