当前位置: 首页 > news >正文

Git 入门知识详解

文章目录

    • 一、Git 是什么
      • 1、Git 简介
      • 2、Git 的诞生
      • 3、集中式 vs 分布式
        • 3.1 集中式版本控制系统
        • 3.2 分布式版本控制系统
    • 二、GitHub 与 Git 安装
      • 1、GitHub
      • 2、Git 安装

一、Git 是什么

1、Git 简介

Git 是目前世界上最先进的分布式版本控制系统。版本控制系统能帮助我们更好地管理文件内容的版本。以用 Microsoft Word
写毕业论文为例,手动复制文件管理版本存在诸多问题:

  1. 版本回退麻烦:难以快速找回特定历史版本的内容。
  2. 文件管理混乱:大量相似文件难以取舍,不敢随意删除。
  3. 协作困难:文件传递和合并改动操作复杂。

理想的版本控制软件应能自动记录文件改动,支持回退到任意历史版本,只呈现最新版本文件,还能支持多人协作编辑。为此,出现了一批版本控制软件,如 VSS、CVS、SVN、Git 等,其中 Git 占据绝对霸主地位。一般版本控制工具包含客户端(本地编写内容及记录版本)和服务端(可将内容和版本记录保存在远程)两部分。

2、Git 的诞生

1991 年 Linus 创建了开源的 Linux 系统,在 2002 年以前,世界各地志愿者通过 diff 方式将源代码文件发给 Linus,由他手工合并代码。Linus 反对使用集中式的 CVS 和 SVN,因其速度慢且必须联网使用,而商用版本控制系统需付费,不符合 Linux 开源精神。

2002 年,Linux 代码库规模增大,Linus 选择了商业版本控制系统 BitKeeper,BitMover 公司授权 Linux 社区免费使用。2005 年,因 Linux 社区有人试图破解 BitKeeper 协议,BitMover 公司要收回免费使用权。Linus 花两周时间用 C 编写了分布式版本控制系统 Git,一个月内 Linux 系统源码就由 Git 管理。2008 年,GitHub 网站上线,为开源项目免费提供 Git 存储,众多开源项目迁移至此。

3、集中式 vs 分布式

3.1 集中式版本控制系统
  • 特点:必须有中央服务器,中央服务器存放所有版本信息,程序员机器上只有某个版本,开发工作依赖中央服务器,需提交新版本或拉取最新版本。
  • 缺点:必须联网才能工作。若中央服务器在局域网,程序员回家无法加班;若在互联网,带宽和网速受限,影响文件提交速度。
  • 常见工具:CVS 是最早的开源免费集中式版本控制系统,但存在提交文件不完整、版本库损坏等问题;SVN 修正了 CVS 的一些稳定性问题,是目前使用最多的集中式版本库控制系统;还有收费的 IBM ClearCase,安装大、运行慢;微软的 VSS 设计反人类,微软自己都很少使用。
3.2 分布式版本控制系统
  • 特点:可以有中央服务器,中央服务器存放所有版本信息,程序员机器上也保存所有版本,中央服务器主要起网盘作用,即便没有也可正常工作。
  • 协作方式:每个人电脑都是完整版本库,工作时无需联网。多人协作时,可互相推送修改。
  • 优势:安全性高,某个人电脑坏掉可从其他人处复制版本库。实际使用中,通常有一台充当“中央服务器”的电脑方便交换修改。
  • 常见工具:除 Git 和 BitKeeper 外,还有 Mercurial 和 Bazaar 等,其中 Git 最快、最简单、最流行。

二、GitHub 与 Git 安装

1、GitHub

GitHub 是基于 Git 的远程文件托管平台,类似的还有 GitCafe、BitBucket 和 GitLab 等。Git 本身可实现版本控制,但内容和版本记录只能保存在本机,结合 GitHub 可将文件内容和版本记录同时保存在远程。使用场景分为无 GitHub 时仅在本地 .git 文件夹维护历史文件,有 GitHub 时在本地维护的同时将历史文件托管在远程仓库。

2、Git 安装

安装可参考:网址。Mac 和 Windows 系统下安装简单,点击操作即可;Linux
系统下安装步骤为解压、./configure、make、make install 。

相关文章:

  • 后知后觉!要是大学就有这些 AI 工具,我能多拿多少奖学金
  • k8s(9) — zookeeper集群部署(亲和性、污点与容忍测试)
  • ESG跨境电商如何为国内的跨境电商企业打开国外的市场
  • 探秘 roadmap.sh:GitHub 最受欢迎的开发者学习路线图项目
  • 组件化开发
  • 「零配置陷阱」:现代全栈工具链的复杂度管控实践
  • 安全测试之SQL注入深度解析
  • Action:Update your application‘s configuration
  • QuecPython+GNSS:实现快速定位
  • 【Java学习笔记】二维数组
  • Linux NIO 原理深度解析:从内核到应用的高性能 I/O 之道
  • 从eslint切换到biome你的Jetbrains下的Webstorm还习惯吗
  • 每日AI必读 - 2025年4月25日(晚报)
  • 4.25学习——文件上传之00截断
  • 人工智能与机器学习,谁是谁的子集 —— 再谈智能的边界与演进路径
  • 自学新标日第二十二课(复习)
  • 并发设计模式实战系列(7):Thread Local Storage (TLS)
  • 命令行指引的尝试
  • 初一试后担忧
  • 在虚拟机中安装Linux详细教程
  • 全球最大汽车板供应商宝钢股份:汽车工业加速转型中材料商如何共舞?
  • 美乌矿产协议签署被曝“临门一脚”时生变,美方提附加条件
  • 两部门预拨4000万元支持山西、广西、陕西做好抗旱救灾工作
  • 民生访谈|支持外贸企业拓内销,上海正抓紧制定便利措施
  • 深入贯彻中央八项规定精神学习教育中央指导组派驻地方和单位名单公布
  • 稳就业稳经济五方面若干举措将成熟一项出台一项