首页 > 代码库 > 【Git】、Git 基础

【Git】、Git 基础


一、Git 概述

1、Git 简介

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

      Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。

      Git 与常用的版本控制工具 CVS, Subversion 等不同,它采用了分布式版本库的方式,不必服务器端软件支持。

      Git是全球最大的同性交友平台


Git 与 SVN 区别

        GIT不仅仅是个版本控制系统,它也是个内容管理系统(CMS),工作管理系统等。

如果你是一个具有使用SVN背景的人,你需要做一定的思想转换,来适应GIT提供的一些概念和特征。

Git 与 SVN 区别点:

  • 1、GIT是分布式的,SVN不是:这是GIT和其它非分布式的版本控制系统,例如SVN,CVS等,最核心的区别。

  • 2、GIT把内容按元数据方式存储,而SVN是按文件:所有的资源控制系统都是把文件的元信息隐藏在一个类似.svn,.cvs等的文件夹里。

  • 3、GIT分支和SVN的分支不同:分支在SVN中一点不特别,就是版本库中的另外的一个目录。

  • 4、GIT没有一个全局的版本号,而SVN有:目前为止这是跟SVN相比GIT缺少的最大的一个特征。

  • 5、GIT的内容完整性要优于SVN:GIT的内容存储使用的是SHA-1哈希算法。这能确保代码内容的完整性,确保在遇到磁盘故障和网络问题时降低对版本库的破坏。


二、为什么要学习 Github,或者说学习 Github 对我们有什么好处?

  • 理由一:

  •        Github 上有很多大牛出没

  •        国外的咱先不说,就国内的像百度、腾讯、阿里之类的大公司,里面的很多工程师都在 Github 上安家落户,有空的时候多在 Github 上逛逛,关注一下大牛,没准还能搞个内推什么的。


  • 理由二:

  •       Github 上可以接触到最新的最前沿的 IT 技术

  •       因为,我们知道任何软件或者产品在上线发布之前,都有开发的过程和测试的过程,Github 上你可以接触到这些产品的初始状态、中间状态和发布状态,你可以第一时间了解到产品的动向。而且根据 Github 上每年发布的统计数据,你可以知道哪些技术是最火热的技术,及时跟上这些技术,而不是学一些过时的小众的技术。这个恐怕是每个搞 IT 技术的人,都非常关心的一个问题。


  • 理由三:

  •       Github 是基于 Git 版本控制工具的,任何一个软件从无到有的全部过程,或者说软件从无到有的每个版本,它是怎么发展过来的,全都一览无遗。

  •      从这里面我们可以学到开发的技术,包括编程语言、单元测试、设计思想、编码规范、项目的协调组织以及流程,等等。而且因为 Github 是版本控制,可以很好的管理程序代码或者文档的每个历史状态,相当于我们每天刷的微博或者微信朋友圈。这些社交媒体工具可以记录我们的生活点滴,而 Github 可以记录我们的技术发展,如果你是一个刚上大一的新生,如果能把学习的每门课程,从 C 语言、数据结构开始,把每门课程的练习代码放到 Github 上,四年下来也是一个很好的积累。


  • 理由四:

  •        Github 是开源的,开源就意味着所有项目的代码和文档,甚至中间过程对我们都是开放的。          我们从这些项目中可以找一些感兴趣的项目参与其中,可以利用这些项目来提升我们的技术,积累我们的项目经验。很多大学生毕业的时候,因为没有项目经验而被企业拒之门外,试想一下,如果能够在大学期间,从大一就开始接触了了解 Github,在大学毕业的时候在 Github 上已经有一些参与项目的经验,那会对我们的未来有多大的帮助啊。如果你想做程序员,你可以在开源项目中贡献代码,如果你想做测试工程师,你可以在开源项目中提 bug 缺陷。

  •          而且,Github 上确实有很多猎头在关注着你,有很多靠谱的工作机会等待着你,前提是你需要在 Github 上安家,然后把你对 IT 技术的学习过程用 Github 管理起来。利用 Github 在个人职业发展上,走向成功的案例举不胜举。


  • 理由五:

  •         Github 不仅托管的项目不仅可以是软件包或者程序代码,也可以是文档教程。

  •        所以,我对 Github 的资料,分两个大类,一个程序代码,二是自然语言代码。程序代码很好理解,大家都多少接触过编程,了解一门或多门编程语言。自然语言代码,其实就是自然语言编写的文档资料。即使我们因为程序语言掌握的不好,不太能一上来参与到开源项目中去贡献代码。但是,很多技术大牛在 Github 上做了很多非常棒的入门教程,帮助初学者。像我就用 Github 做课程开发,大家可以在我的 Github courses 仓库中,找到很多课程的资料页面。有的人在 Github 上写书,我这里搜藏了两个大牛写的 python 书,都可以完全免费的在线阅读。还有阮一峰老师写的 JavaScript 书,等等。


  •         所以 Github 是一个非常丰富的学习资料仓库。大家如果不接触 Github,没有掌握 Github 这个强大的工具,这些优质的学习资料,就跟大家失之交臂了,这是非常可惜的一件事情。

  • 最后,用一句话来总结一下这个话题。那就是,一旦你掌握了 Github 这个强大的工具,你的 IT 技术水平或者职业发展就进入了快车道。







【Git】、Git 基础