git study

git study

Git 对待数据的方法:

  1. Git 对待数据更像是一个快照流,没有更改的直接保留一个链接到原来的文件

    subversion存储每个版本与初始文件的差异

  2. git近乎所有操作都在本地执行,所以速度很快.其它CCVS离线后基本做不了什么

  3. git存储sha-1校验和( 40 个十六进制字符),并以此做索引引用.

GIT三种状态

  1. 已修改 modified -> 工作目录
  2. 已暂存 staged(版本标记) -> 暂存区
  3. 已提交 commited(存储到数据库) -> 仓库

1565675036087

GIT三个工作区

工作目录,暂存区,仓库

GIT安装

1
[Mon Aug 12 talen@tp-arch-tianfei ~]$ sudo pacman -S git

GIT 配置

配置路径

git config 有三个配置文件路径

系统配置/etc/gitconfig

1
git config --system

当前用户配置 ~/.gitconfig 或 ~/config/git/config

1
git config --global

当前仓库配置 .git/config

配置用户信息

如要配置当前用户或系统层配置,添加–global或–system参数

1
2
$ git config  user.name "Tianfei hao"
$ git config user.email haotianfei@example.com

检查配置

1
$ git config --list

GIT基础

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
git init
git add
git rm 删除工作区的文件
--cached只删除staged中的文件
--force适用于已经删除工作区文件,但已经提交到staged中的文件
git mv 重命名文件
git commit
-a //跳过add,将staged的文件暂存一并提交
--amend
git clone
git status
git diff // modified与staged对比
git diff --cached/--staged //staged与commited对比
git log
-p 显示diff
-数字 显示最近几次的提交
--stat 每一次提交的统计信息

.gitignore 文件忽略跟踪

  1. 空行,#开头会被忽略
  2. 使用标准glob模式匹配( shell 所使用的简化了的正则表达式)
    1. * 匹配任意字符
    2. [abc] 方括号内任意字符
    3. ? 单个任意字符
    4. [0-9] 范围
    5. a/**/z 中间任意目录
  3. 使用/开头防止递归,/结尾表示目录
  4. !表示取反
坚持原创技术分享,您的支持将鼓励我继续创作!