@

什么是版本控制

版本控制系统(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-26:给定一个数组componets,长度为A, componets[i] = j,代表i类型的任务需要耗时j 给定一个二维数组orders,长度为M, orders[i][0]代表i

    2023-04-26:给定一个数组componets,长度为A, componets[i] = j,代表i类型的任务需要耗时j 给定一个二维数组orders,长度为M, orders[i][0]代表i ...

  2. 2022-01-16:小明手中有n块积木,并且小明知道每块积木的重量。现在小明希望将这些积木堆起来, 要求是任意一块积木如果想堆在另一块积木上面,那么要求: 1.上面的积木重量不能小于下面的积木重量;

    2022-01-16:小明手中有n块积木,并且小明知道每块积木的重量.现在小明希望将这些积木堆起来, 要求是任意一块积木如果想堆在另一块积木上面,那么要求: 1.上面的积木重量不能小于下面的积木重量: ...

  3. springboot 静态资源导入

    1.根据源码可以看到需要去webjars官网下载jquery的依赖 <dependency> <groupId>org.webjars</groupId> < ...

  4. nginx: [emerg] https protocol requires SSL support in /usr/local/nginx/conf/nginx.conf:50

    最近在nginx中配置一个443端口 一.安装nginx 首先得先安装个nginx 1.安装依赖包 # 一键安装上面四个依赖 [root@dex ~]# yum -y install gcc zlib ...

  5. python 环境下使用PIP 报错的解决方法

    最近做一个小程序项目,使用djangorestframework,安装restframework 出现错误,安装环境Python2.7:出现错误如下:  "UnicodeEncodeErro ...

  6. 一分钟学一个 Linux 命令 - cd

    前言 大家好,我是 god23bin.欢迎来到这个系列,每天只需一分钟,记住一个 Linux 命令不成问题.今天让我们从 cd 命令开始,掌握在 Linux 系统中切换目录的技巧. 什么是 cd 命令 ...

  7. Vagrant 学习笔记:搭建 K8s 集群

    Vagrant学习笔记:搭建K8s集群 通常情况下,我们在使用VMware.VirtualBox这一类虚拟机软件创建虚拟开发环境时,往往需要经历寻找并下载操作系统的安装镜像文件,然后根据该镜像文件启动 ...

  8. C++程序开发技巧

    引言 类(class)的使用分为两种--基于对象(object Based)和面向对象(object oriented) 基于对象是指,程序设计中单一的类,和其他类没有任何关系 单一的类又分为:不带指 ...

  9. 【QCustomPlot】配置帮助文档

    说明 使用 QCustomPlot 绘图库辅助开发时整理的学习笔记.同系列文章目录可见 <绘图库 QCustomPlot 学习笔记>目录.本篇介绍 QCustomPlot 帮助文档的配置. ...

  10. 记一次DNS问题排查

    一.问题:域名flow.nzkong.com解析很慢: 排查过程 抓包分析:tcpdump -i eth0 -n -s 500 port domain 1 14:40:44.548553 IP 10. ...