@

什么是版本控制

版本控制系统(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. 云端炼丹,算力白嫖,基于云端GPU(Colab)使用So-vits库制作AI特朗普演唱《国际歌》

    人工智能AI技术早已深入到人们生活的每一个角落,君不见AI孙燕姿的歌声此起彼伏,不绝于耳,但并不是每个人都拥有一块N卡,没有GPU的日子总是不好过的,但是没关系,山人有妙计,本次我们基于Google的 ...

  2. 【Linux】(小白向)详解VirtualBox网络配置-配置Linux网络

    本文时间 2023-05-18 作者:sugerqube漆瓷 本文面向新手,重在理解会舍弃不少精密的理论,还请大佬们见谅. 本文目标:成功使用ssh工具登录linux,同时linux能连接外网. 网络 ...

  3. 将远程oracle数据库导入到本地

    一.切换用户 先从普通用户 切换到root (有些时候会因为无权限直接执行 su - oracle 会被拒绝) fssa@jzsql.sn.com:/home/fssa>su - 从当前用户切换 ...

  4. OSPF 多区域配置实验

    实验拓扑 实验需求 按照图示配置 IP 地址和loopback 接口 按照图示分区域配置 OSPF ,实现全网互通 为了路由结构稳定,要求路由器使用环回口作为 Router-id 在AR3上配置静默接 ...

  5. WPF中小的技能点 1

    图片圆角的处理方式       采用boder里background背景设置图片并设置对应的圆角 <Border CornerRadius="20">      < ...

  6. Some book

    ## book [C++] Accelerated C++ C++ Primer 5th C++ 程序设计语言: 1 ~ 3 C++ 程序设计语言: 4 C++ 编程思想 C++ 标准库 2th C+ ...

  7. 认识Java注解

    1.注解是什么? 注解,元数据的一种形式,提供与程序有关的数据,但又不是程序的一部分.注解对它们注解的代码操作没有直接影响. 附注:元数据是指用来描述数据的数据,更通俗一点,就是描述代码间关系,或者代 ...

  8. Grafana 系列-GaC-2-Grafana Terraform Provider 基础

    系列文章 Grafana 系列文章 Terraform 系列文章 概述 前文最后总结了我的工具选型: Grafana Terraform provider Jsonnet 我们今天先简单介绍 Graf ...

  9. 微信公众号redirect_uri 参数错误

    前期所有准备工作我就不在这里一一叙述了.在这说一下需要注意的事项: 1.如果域名为www开头,记得把www去掉,否则依旧会报这个错误 2.跳转域名必须是授权域名的子集,如:'授权域名为 www.bai ...

  10. 【TVM模型编译】2. relay算子构造.md

    从TVM的官方Tutorial里面,介绍了如何新增自定义算子.(这是我翻译的) 之前的文章讲到了onnx 算子转换到Relay IR的过程 下面以Conv2d算子介绍,编译过程中 Relay IR是如 ...