你不知道的Git系列☞概念篇

48 阅读3分钟

前言

今天分享一个我平时用的git工具手册,助力开发,喜欢的可以点赞+收藏

1. Git介绍

1.1 Git特点

Git是一款免费、开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。

  优点

  • 适合分布式开发,强调个体;
  • 公共服务器压力和数据量都不会太大;
  • 速度快、灵活;
  • 任意两个开发者之间可以很容易的解决冲突;
  • 离线工作。

  缺点

  • 代码保密性差,一旦开发者把整个库克隆下来就可以完全公开所有代码和版本信息;
  • 权限控制不友好,如果需要对开发者限制各种权限的建议使用SVN。

1.2 Git和SVN对比

Git是分布式的,SVN是集中式

这是 Git 和 SVN 最大的区别。若能掌握这个概念,两者区别基本搞懂大半。因为 Git 是分布式的,所以 Git 支持离线工作,在本地可以进行很多操作,而 SVN 必须联网才能正常工作。

SVN版本控制示意图:

image.png  

 

Git版本控制示意图:

image.png  

 

Git复杂概念多,SVN简单易上手

所有同时掌握 Git 和 SVN 的开发者都必须承认,Git 的命令实在太多了,日常工作需要掌握add,commit,status,fetch,push,rebase等,若要熟练掌握,还必须掌握rebase和merge的区别,fetch和pull的区别等,除此之外,还有cherry-pick,submodule,stash等功能,仅是这些名词听着都很绕。

  在易用性这方面,SVN 会好得多,简单易上手,对新手很友好。但是从另外一方面看,Git 命令多意味着功能多,若我们能掌握大部分 Git 的功能,体会到其中的奥妙,会发现再也回不去 SVN 的时代了。

 

Git分支廉价,SVN分支昂贵

在版本管理里,分支是很常使用的功能。在发布版本前,需要发布分支,进行大需求开发,需要 feature 分支,大团队还会有开发分支,稳定分支等。在大团队开发过程中,常常存在创建分支,切换分支的需求。

Git 分支是指针指向某次提交,而 SVN 分支是拷贝的目录。这个特性使 Git 的分支切换非常迅速,且创建成本非常低。

而且 Git 有本地分支,SVN 无本地分支。在实际开发过程中,经常会遇到有些代码没写完,但是需紧急处理其他问题,若我们使用 Git,便可以创建本地分支存储没写完的代码,待问题处理完后,再回到本地分支继续完成代码。

1.3 Git核心概念

Git 最核心的一个概念就是工作流

工作区(Workspace)是电脑中实际的目录。

暂存区(Index/ stage)类似于缓存区域,临时保存你的改动。

仓库区(Repository),分为本地仓库和远程仓库。

image.png

后言

感兴趣的小伙伴可以浏览下以下系列相关文章(欢迎点赞+关注)

文章链接

附上git常用指令思维导图