@

什么是版本控制

版本控制系统(VCS)是一种记录文件内容变化以便将来查阅特定版本修订情况的系统。使用版本控制系统在出错时可以回溯。

本地版本控制系统

记录文件的差异变化。

集中化的版本控制

使用单一服务器统一管理。

缺点是服务器的单点故障。本地版本服务器也存在历史记录丢失风险。诸如CVS、Subversion以及Perforce等。

分布式的版本控制系统

每一次克隆操作都是对代码仓库的完整备份。像Git、Mercurial、Bazaar 以及Darcs等。

本地版本控制系统和集中化的版本控制系统都是基于差异的VCS,而分布式的版本控制系统是基于快照的VCS。

Git简史

Linux社区基于使用BitKeeper的经验开发出Git。

Git是什么

Git是一个分布式版本控制系统,用于跟踪和管理代码的变更历史。它允许开发者在不同分支上并行开发,协作合并代码,轻松回滚和查看历史修改,为团队提供高效的版本管理和协作工具。

在Git中,有三个关键的区域,即工作目录(Working Directory)、暂存区(Staging Area/Index)和版本库(Repository)。

工作目录是你实际编辑和修改文件的地方,暂存区是暂时存放你准备提交的更改的地方,而版本库则是保存了项目历史记录的地方。

Git的特点:

  1. 直接记录快照而非差异比较;
  2. 几乎所有操作都在本地执行;
  3. 保证完整性;
  4. 一般只添加数据;
  5. 三种状态:已修改(modified)已提交(committed)已暂存(staged)

Git工作流程:

  1. 在工作区修改文件;
  2. 将更改选择性地暂存;
  3. 提交暂存区的更新到Git目录。

安装Git

在Linux上安装

# 基于 RPM 的发行版,如 RHEL 或 CentOS,使用dnf
$ sudo dnf install git-all
# 基于 Debian 的发行版上,如 Ubuntu,使用apt
$ sudo apt install git-all

在Windows上安装

  1. 安装Git For Windows
  2. 使用Github Desktop可视化工具
  3. 使用Chocolatey安装Git

初次运行Git前的配置

用户信息

必须配置你的用户名和邮件信息,因为每一次Git提交都会携带。

$ git config --global user.name "Carl"
$ git config --global user.email "Carl@gmail.com"

使用--global一劳永逸,如果想在一个项目使用另外的用户名和邮件信息可以另外设置且不使用--global

文本编辑器

例如Linux系统:

$ git config --global core.editor vim

检查配置信息

$ git config --list
user.name=Carl
user.email=Carl@gmail.com
color.status=auto
color.branch=auto

可以使用git config <key>的格式查询指定键名的值。

获取帮助

$ git help <verb>
$ git <verb> --help
$ man git-<verb>

例如查询git add命令的手册:

$ git help add