一、Git概念

1.1、Git定义

  Git 是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。Git 与常用的版本控制工具 CVS, Subversion 等不同,它采用了分布式版本库的方式,不必服务器端软件支持。

1.2、Git特点

  • 直接记录快照,而非差异比较
  • 近乎所有操作都是本地执行
  • 使用 SHA-1 散列(hash,哈希)保证数据完整性
  • Git 一般只添加数据

1.3、Git三种状态及三个工作区域

三种状态

  已修改(modified):表示修改了文件,但还没保存到数据库中。

  已暂存(staged):表示对一个已修改文件的当前版本做了标记,使之包含在下次提交的快照中。

  已提交(committed):表示数据已经安全的保存在本地数据库中。

另一种角度下Git文件的两种状态:

  已跟踪:已跟踪文件指被纳入了版本控制的文件,在上一次快照中有其记录。在工作一段时间后,它们的状态可能处于未修改、已修改或已暂存。

  未跟踪: 工作目录中除已跟踪文件以外的所有其它文件都属于未跟踪文件。 初次克隆某个仓库的时候,工作目录中的所有文件都属于已跟踪文件,并处于未修改状态。

Git 文件生命周期图:

三个工作区域

  工作目录:对项目的某个版本独立提取出来的内容。 这些从 Git 仓库的压缩数据库中提取出来的文件,放在磁盘上供你使用或修改。

  暂存区域:是一个文件,保存了下次将提交的文件列表信息,一般在 Git 仓库目录中。 也被称作“索引”,一般还是叫暂存区域。

  Git 仓库: Git 用来保存项目的元数据和对象数据库的地方。从其它计算机克隆仓库时,拷贝的就是这里的数据。

1.4、Git 工作流程

  1. 在工作目录中修改文件(已修改状态)。

  2. 暂存文件,将文件的快照放入暂存区域(已暂存状态)。

  3. 提交更新,找到暂存区域的文件,将快照永久性存储到 Git 仓库目录(已提交状态)。

二、Git配置文件

2.1、配置文件分类

(1). 通用配置文件:/etc/gitconfig ,对所有用户及其仓库的通用配置: git config --system

(2). 用户配置文件: ~/.gitconfig 文件或 ~/.config/git/config文件,只适用于该用户:git config --global

(3). 仓库配置文件: .git/config,针对该仓库,即当前使用仓库的 Git 目录中的 config 文件。

说明:

  每一个级别覆盖上一级别的配置,所以 .git/config 的配置变量会覆盖 /etc/gitconfig 中的配置变量。

三、Git配置文件相关命令

获取帮助

##使用帮助的三种方法,<verb>为查询的命令
$ git help <verb>
$ git <verb> --help
$ man git-<verb>
##查询config命令用法
$ git help config

配置用户信息

##设置用户名称、邮件地址,Git会将其写入每一次的提交信息中
$ git config --global user.name "John Doe"
$ git config --global user.email johndoe@example.com

注意:

  使用了 --global 选项一次即可,之后无论你在该系统上做任何事情, Git 都会使用那些信息。 当你想针对特定项目使用不同的用户名称与邮件地址时,可以在那个项目目录下运行没有 --global 选项的命令来配置。

##针对特定项目使用不同的用户名称与邮件地址
cd "目标目录"
$ git config user.name "John"
$ git config user.email john@example.com

文本编辑器

##设置Git默认使用的文本编辑器
$ git config --global core.editor vim (系统默认)
$ git config --global core.editor emacs
$ git config --global core.editor vi

检查配置信息

##列出 Git 所有能找到的配置
$ git config --list
##列出 Git 的某一项配置:git config <key>
$ git config user.name

注意:

  列表中存在重复的变量名,因为 Git 会从不同的文件中读取同一个配置(例如:/etc/gitconfig 与 ~/.gitconfig)。 这种情况下,Git 会使用它找到的每一个变量的最后一个配置。

  • 作者:
    DeepInThought


    出处:
    https://www.cnblogs.com/DeepInThought


    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
  • 【1】Git基础的更多相关文章

    1. [转] Git 基础 - 打标签

      2.6 Git 基础 - 打标签 打标签 同大多数 VCS 一样,Git 也可以对某一时间点上的版本打上标签.人们在发布某个软件版本(比如 v1.0 等等)的时候,经常这么做.本节我们一起来学习如何列 ...

    2. Git基础操作

      配置秘钥 1.检查本机有没有秘钥 检查~/.ssh看看是否有名为d_rsa.pub和id_dsa.pub的2个文件. $ ~/.sshbash: /c/Users/lenovo/.ssh: Is a ...

    3. git基础及分支

      关于版本控制 git是一种分布版本控制系统,每一主机都保存了完整副本.必杀技是分支. 在Windows可安装git客户端msysgit. git基础 第一次看progit觉得有点不懂,不懂版本控制,一 ...

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

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

    5. Git详解之二 Git基础

      Git 基础 读完本章你就能上手使用 Git 了.本章将介绍几个最基本的,也是最常用的 Git 命令,以后绝大多数时间里用到的也就是这几个命令.读完本章,你就能初始化一个新的代码仓库,做一些适当配置: ...

    6. 2.4 Git 基础 - 撤消操作

      2.4 Git 基础 - 撤消操作 撤消操作 任何时候,你都有可能需要撤消刚才所做的某些操作.接下来,我们会介绍一些基本的撤消操作相关的命令.请注意,有些撤销操作是不可逆的,所以请务必谨慎小心,一旦失 ...

    7. ###Git 基础图解、分支图解、全面教程、常用命令###

      一.Git 基础图解 转自:http://www.cnblogs.com/yaozhongxiao/p/3811130.html Git 图解剖析 git中文件内容并没有真正存储在索引(.git/in ...

    8. 【git学习二】git基础之git管理本地项目

      1.背景        git基础打算分两部分来说,一部分是对于本地项目的管理,第二部分是对于远程代码仓库的操作. git运行本地项目管理包含对于相关文件的追踪,暂存区的比較分析,提交,撤销等功能. ...

    9. Git基础教程(二)

      继续上篇Git基础教程(一),在开篇之前,先回顾一下上篇中的基本命令. 配置命令:git config --global * 版本库初始化:git init 向版本库添加文件:git add * 提交 ...

    10. Git详解之二:Git基础

      Git 基础 读完本章你就能上手使用 Git 了(伯乐在线注:如果你对Git还不了解,建议从本Git系列第一篇文章开始阅读).本章将介绍几个最基本的,也是最常用的 Git 命令,以后绝大多数时间里用到 ...

    随机推荐

    1. logback 和 log4j对比,及相关配置

      Logback 一.logback的介绍 Logback是由log4j创始人设计的又一个开源日志组件.logback当前分成三个模块:logback-core,logback- classic和log ...

    2. java.lang.IllegalStateException: No primary or default constructor found for class java.time.LocalDate

      转载自:https://blog.csdn.net/Coder_Arley/article/details/81910705 springboot中报错如下: springmvc也可以使用类似处理方法 ...

    3. Kibana——安装部署

      1.准备 JDK:1.8版本及以上: Kibana:6.2.4版本: 2.安装 2.1.下载解压 wget https://artifacts.elastic.co/downloads/kibana/ ...

    4. ubuntu 安装的一些软件

      https://github.com/wszqkzqk/deepin-wine-ubuntu 14 版本的ubuntu  安装发生问题; 16 18 的都可以安装成功微信;

    5. [C++]数据结构:线性表之顺序表

      1 顺序表 ADT + Status InitList(SeqList &L) 初始化顺序表 + void printList(SeqList L) 遍历顺序表 + int ListLengt ...

    6. Run Hyper-V and VirtualBox on the same machine (轉載)

      Run Hyper-V and VirtualBox on the same machine Posted on September 5, 2012 by derek gusoff Recently ...

    7. nload 安装和使用

      nload是一个很小巧的工具,用来监控当前系统的网速 安装 MAC brew install nload Linux 下载地址:https://sourceforge.net/projects/nlo ...

    8. Centos7下 升级php5.4到7.1 yum安装

      1.查看当前 PHP 版本 php -v 查看当前 PHP 相关的安装包,删除之 yum list installed | grep php yum remove php yum remove php ...

    9. 洛谷 题解 UVA1626 【括号序列 Brackets sequence】

      看还没有人发记搜的题解,赶紧来水发一篇 我们定义dp[i][j]为区间i~j内最少添加几个括号才能把这个串变成正规括号序列. 考虑四种情况 i>j不存在这种子串,返回0 i==j子串长度为1无论 ...

    10. 搭建Leanote笔记

      mongo\leanote #查询Linux开放的端口 netstat -nupl (UDP类型的端口) netstat -ntpl (TCP类型的端口) #下载安装MongoDB wget http ...