@

什么是版本控制

版本控制系统(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

《Pro Git》起步笔记的更多相关文章

  1. Pro Git 学习笔记

    Pro Git 学习笔记 文档地址:Pro Git原文地址:PRO GIT 学习笔记 git常见命令 1.Git起步 初次运行Git前的配置 用户信息 git config --global user ...

  2. 《Pro Git》笔记3:分支基本操作

    <Pro Git>笔记3:Git分支基本操作 分支使多线开发和合并非常容易.Git的分支就是一个指向提交对象的可变指针,极其轻量.Git的默认分支为master. 1.Git数据存储结构和 ...

  3. 《Pro Git》笔记1:起步

    第一章 起步 1.关于版本控制 版本控制用于记录和追踪目录结构和文件内容变化,能够追溯过去的任何修改和变化,并恢复到任何历史状态. 版本控制系统可以按照发展过程分成以下几类: 目录备份.记录版本变化最 ...

  4. Pro Git 读书笔记

    一. 起步 1. 集中式版本控制缺点:中央服务器的单点故障. 分布式版本控制优点:客户端并不只提取最新版本的文件快照,而是把代码仓库完整地镜像下来. 这么一来,任何一处协同工作用的服务器发生故障,事后 ...

  5. 《Pro Git》笔记2:Git基础操作

    第二章 Git基础 Git基础包括:版本库的创建和获取,文件添加修改提交等基本操作,状态查询,远程版本库管理和同步,打标签. 1.取得项目的Git版本库 基于Git的工作流要以Git版本库为基础,即可 ...

  6. Pro Git读书笔记 - 分支

    Git 分支介绍. 几乎所有的版本控制系统都以某种形式支持分支. 使用分支意味着你可以把你的工作从开发主线上分离开来,以免影响开发主线. 在很多版本控制系统中,这是一个略微低效的过程--常常需要完全创 ...

  7. Pro Git读书笔记 - Git 常用命令

    在工作目录中初始化新仓库 要对现有的某个项目开始用 Git 管理,只需到此项目所在的目录,执行git init 检查当前文件状态 要查看哪些文件处于什么状态,可以用git status命令 将工作文件 ...

  8. pro git 读书笔记 3 Git 分支

    分支 新建分支:git branch 分支名 切换到该分支:git checkout 分支名 补充:以上两条语句等价于一句:git checkout -b 分支名 转换分支的时候最好保持一个清洁的工作 ...

  9. pro git 读书笔记 1

    Git 1 - Getting Started Git 的特点 Git 存储每个版本的快照:其他 VCS(版本控制系统) 存储两个版本的变化之处 好处参考 Git 分支章节 Git 几乎所有操作都是本 ...

  10. pro git 读书笔记 2

    Git 2 - Git Basics 1 add github 上建立新的 repository,命名 demo git clone 到本地 github 目录 将自己之前的项目 copy 到该 de ...

随机推荐

  1. 2023-04-19:给定一个非负数组arr 任何两个数差值的绝对值,如果arr中没有,都要加入到arr里 然后新的arr继续,任何两个数差值的绝对值,如果arr中没有,都要加入到arr里 一直到ar

    2023-04-19:给定一个非负数组arr 任何两个数差值的绝对值,如果arr中没有,都要加入到arr里 然后新的arr继续,任何两个数差值的绝对值,如果arr中没有,都要加入到arr里 一直到ar ...

  2. 2022-07-24:以下go语言代码输出什么?A:[]int{};B:[]int(nil);C:panic;D:编译错误。 package main import ( “fmt“ ) f

    2022-07-24:以下go语言代码输出什么?A:[]int{}:B:[]int(nil):C:panic:D:编译错误. package main import ( "fmt" ...

  3. 2022-01-21:完美矩形。 给你一个数组 rectangles ,其中 rectangles[i] = [xi, yi, ai, bi] 表示一个坐标轴平行的矩形。这个矩形的左下顶点是 (xi,

    2022-01-21:完美矩形. 给你一个数组 rectangles ,其中 rectangles[i] = [xi, yi, ai, bi] 表示一个坐标轴平行的矩形.这个矩形的左下顶点是 (xi, ...

  4. 2021-12-21:任务调度器。 给你一个用字符数组 tasks 表示的 CPU 需要执行的任务列表。其中每个字母表示一种不同种类的任务。任务可以以任意顺序执行,并且每个任务都可以在 1 个单位时间

    2021-12-21:任务调度器. 给你一个用字符数组 tasks 表示的 CPU 需要执行的任务列表.其中每个字母表示一种不同种类的任务.任务可以以任意顺序执行,并且每个任务都可以在 1 个单位时间 ...

  5. var,let,const的区别

    JS中变量的定义方式有四种 不写var,let,const--直接定义变量 a = 10; 使用var关键字定义 var a = 10; 使用let关键字定义 let a = 10; 使用const关 ...

  6. JS 数组常用操作全集

    文章目录 1.push()方法 2.unshift()方法 3.pop() 方法 4.shift() 方法 5.filter() 方法 6.join()方法 7. indexOf() 方法 8.rev ...

  7. jQuery 添加水印

    jQuery 添加水印 <script src="../../../../AJs/jquery.min.js"></script> <script t ...

  8. day08-SpringCloud Gateway-服务网关

    SpringCloud Gateway-服务网关 1.Gateway介绍 1.1引出问题 没有使用网关服务时: 使用网关服务后: 1.2Gateway网络拓扑图 1.3Gateway是什么 官网:Sp ...

  9. ssh,socat端口转发

    ssh隧道 我们将要研究的第一个协议是SSH,因为它已经内置了通过SSH隧道进行端口转发的功能.虽然SSH曾经是与Linux系统相关联的协议,但现在Windows默认安装了OpenSSH客户端,因此您 ...

  10. 【C++ Primer】2.1 基本内置类型

    1. 基本内置类型 基本算数类型: 类型 含义 最小尺寸 bool 布尔类型 8bits char 字符 8bits wchar_t 宽字符 16bits char16_t Unicode字符 16b ...