@

什么是版本控制

版本控制系统(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. jenkins的安装和配置(flask结合jenkins半自动化部署流程)

    jenkins在虚拟机中安装 1.1 背景介绍 Jenkins 是一款流行的开源持续集成(Continuous Integration)工具,广泛用于项目开发,具有自动化构建.测试和部署等功能. Je ...

  2. 2022-11-06:给定平面上n个点,x和y坐标都是整数, 找出其中的一对点的距离,使得在这n个点的所有点对中,该距离为所有点对中最小的。 返回最短距离,精确到小数点后面4位。

    2022-11-06:给定平面上n个点,x和y坐标都是整数, 找出其中的一对点的距离,使得在这n个点的所有点对中,该距离为所有点对中最小的. 返回最短距离,精确到小数点后面4位. 答案2022-11- ...

  3. 2022-09-03:n块石头放置在二维平面中的一些整数坐标点上 每个坐标点上最多只能有一块石头 如果一块石头的 同行或者同列 上有其他石头存在,那么就可以移除这块石头。 给你一个长度为 n 的数组

    2022-09-03:n块石头放置在二维平面中的一些整数坐标点上 每个坐标点上最多只能有一块石头 如果一块石头的 同行或者同列 上有其他石头存在,那么就可以移除这块石头. 给你一个长度为 n 的数组 ...

  4. 2021-09-26:搜索旋转排序数组。整数数组 nums 按升序排列,数组中的值 互不相同 。在传递给函数之前,nums 在预先未知的某个下标 k(0 <= k < nums.length)上进行了

    2021-09-26:搜索旋转排序数组.整数数组 nums 按升序排列,数组中的值 互不相同 .在传递给函数之前,nums 在预先未知的某个下标 k(0 <= k < nums.lengt ...

  5. 沁恒 CH32V208(四): CH32V208 网络DHCP示例代码分析

    目录 沁恒 CH32V208(一): CH32V208WBU6 评估板上手报告和Win10环境配置 沁恒 CH32V208(二): CH32V208的储存结构, 启动模式和时钟 沁恒 CH32V208 ...

  6. Python基础 - python解释器

    Python解释器是什么 Python解释器本身也是个程序, 它是解释执行 Python代码的,所以叫解释器. 没有它,我们的Python代码是没有办法运行的. 怎么下载安装Python解释器   官 ...

  7. 瞄准程序员招聘痛点,ShowMeBug让面试代码操作可“回放”

    程序员虽然是建设互联网的职业之一,但他们的招聘工作的线上化却有不少难题. 疫情加速了市场对远程办公.远程面试.远程教学等模式的接受程度,但程序员招聘涉及到代码能力测试,甚至不同企业有不同的产品代码基础 ...

  8. 图解三代测序(SMRT Sequencing)

    目前主流三代测序平台除了Oxford 家的 Nanopore,还有 Pacific Biosciences(简称 PacBio)公司的 Single Molecule Real-Time(SMRT)S ...

  9. 慢 SQL 优化之索引的作用是什么?

    前言 本文针对 MySQL 数据库的 InnoDB 存储引擎,介绍其中索引的实现以及索引在慢 SQL 优化中的作用. 本文主要讨论不同场景下索引生效与失效的原因. 慢SQL与索引的关系 慢SQL优化原 ...

  10. .Net7发现System.Numerics.Vector矢量化的一个bug,Issues给了dotnet团队

    因为前几天做.Net7的矢量化性能优化,发现了一个bug.在类System.Numerics.Vector里面的成员变量IsHardwareAccelerated.但是实际上不确定这个bug是visu ...