程序员书籍笔记 程序员书籍笔记
  • HTML
  • CSS
  • JavaScript
  • 前端知识
  • Vue
  • MarkDown
  • git
  • Node.js
  • Linux
  • 51单片机
  • 四级
  • 第一学期课程
  • 操作系统
  • 计算机网络
  • 数据结构
  • 计算机组成原理
  • HTML5
  • Electron
  • 日记便签
  • 前端导航
GitHub (opens new window)
  • HTML
  • CSS
  • JavaScript
  • 前端知识
  • Vue
  • MarkDown
  • git
  • Node.js
  • Linux
  • 51单片机
  • 四级
  • 第一学期课程
  • 操作系统
  • 计算机网络
  • 数据结构
  • 计算机组成原理
  • HTML5
  • Electron
  • 日记便签
  • 前端导航
GitHub (opens new window)
  • Vue

  • Nuxt

  • Echarts

  • Node

  • git

    • git快速上手
    • git基础
      • 版本控制
        • 分类
      • 版本控制差异
      • Git
      • Git中的三个区域
      • Git中的三种状�?
      • 基本操作
        • 配置用户信息
        • 查看所有的全局配置�?
        • 获取帮助信息
        • 获取GIt仓库
        • Git工作区的四种状�?
        • 查看文件的状�?
        • 添加跟踪文件
        • 提交更新
        • 文件的基本状态变�?
        • 撤销对文件的修改
        • 取消暂存的文�?
        • 跳过暂存�?
        • git仓库移除文件
        • 查看提交历史
        • 回退版本
      • git忽略文件
    • GitHub
    • git分支
  • express

  • 微信小程序

  • Spring

  • 后端知识

  • Markdown

  • project

  • 自用文档查询

  • 框架和软件
  • git
yuadh
2022-02-03
目录

git基础

# 版本控制

版本控制软件是一个用来记录文件变化,以便将来查阅特定版本修改情况的系统,因此有时也叫�? “版本控制系统�?

  • 操作简�?
  • 易于对比
  • 易于回溯
  • 不易丢失
  • 写作方便

# 分类

  1. 本地版本控制系统
  2. 集中化的版本控制系统
  3. 分布式版本控制系�?

本地版本控制系统

使用软件来记录文件的不同版本,提供了工作效率。降低了手动维护版本的出错率

缺点�?

单机运行,不支持多人协作开�?

版本数据库故障后,所有历史更行记录会丢失

集中化的版本控制系统 SVN

服务器保存文件的所有更新记�?

客户端只保留最新的文件版本

优点:联网运行,支持多人协作开�?

缺点�?

不支持离线提交版本控制更�?

中心服务器崩坏之后,所有人无法正常工作

版本数据库故障后,所有历史更新记录会丢失

分布式版本控制系�?

服务器保存文件的所有更新版�?

客户端是服务器的完整备份,并不是只保留文件的最新版�?

优点�?

联网运行,支持多人协作开�?

客户端断网后支持离线本地提交版本更新

服务器故障或损坏之后,可以使用任意一个客户端的备份进行恢�?

# 版本控制差异

# Git

Git是一个开源的分布式版本控制系统,是目前世界上最先进、最流行的版本控制系统。可以快速高效地从一个很小到非常大的项目版本管理

  • 直接记录快照,而非差异比较
  • 近乎所有操作都是本地执�?

# Git中的三个区域

工作�?

**暂存�? **

Git仓库

# Git中的三种状�?

已修�? modified:表示修改了文件,但是还没将修改的结果放到暂存区

已暂�? staged:表示对已修改的文件的当前版本做了标记,使之包含在下次提交的列表�?

已提�? committed�? 表示文件已经安全地保存在本地�? git 仓库�?

工作基本流程�?

  1. 在工作区中修改文�?
  2. 将你想要下次提交的更改进行暂�?
  3. 提交更新,找到暂存的文件,将快照永久性存储到 Git 仓库

# 基本操作

# 配置用户信息

git config --global user.name "Your name"
git config --global user.email "XX@XX"
1
2

# 查看所有的全局配置�?

git config --list --global
1

# 获取帮助信息

浏览器显�? git help [xxx]

or

终端显示 git [xxx] -h

# 获取GIt仓库

  1. 在现有目录中初始化仓�?

    git init

  2. 拉取

# Git工作区的四种状�?

未修改和已修改是�? git 仓库中的文件内容进行对照

# 查看文件的状�?

git status

精简的方式显�?

git status -s

# 添加跟踪文件

git add [xxx]

# 提交更新

git commit -m "message"

# 文件的基本状态变�?

  • 文件初始创建是未跟踪状�? Untracked files 红色
  • git add 之后文件是未修改状�? Unmodified 绿色
  • git commit 之后文件是已暂存状�? Staged 绿色 文件是未修改
  • 文件内容修改之后是已修改状态modified 红色 加入暂存区后�? 绿色

# 撤销对文件的修改

对未加入暂存区的文件修改,还原成 Git 仓库中所保存的版�?

git checkout -- [index.html]

# 取消暂存的文�?

git reset HEAD 文件的名�?
1

# 跳过暂存�?

工作�? - 仓库

git commit -a -m "message"
1

# git仓库移除文件

  1. �? git 仓库和工作区中同时移除文�?

    git rm -f index.js
    
    1
  2. 只从 git 仓库中移除文件,但保留工作区中的文件

    git rm --cached index.js
    
    1

# 查看提交历史

git log
1

other

# 只展示最新的 N 条提交历�?
git log -2
# 在一行上展示最新的 N 条提交历�?
git log -2 --pretty=online
# 自定义输出格�?
# %h哈希�? 	%an作者的名字 	%ar修改日期		%s 提交说明
git log -2 --pretty=format:"%h | %an | %ar | %s"
1
2
3
4
5
6
7

# 回退版本

# 在一行上展示所有的提交历史
git log --pretty=online

# 使用 git reset --hard 命令,根据指定的提交 ID 回退到指定版�?
git reset --hard <CommitID>

# 回退到旧版本时,需要展示所有的历史版本 
git reflog --pretty=online

# 再次根据最新的提交 ID ,跳转到最新的版本
git reset --hard <CommitID>
1
2
3
4
5
6
7
8
9
10
11

# git忽略文件

.gitignore 配置文件,对需要忽略的文件配置

格式规范�?

  • �? # 开头的是注�?
  • �? / 结尾的是目录
  • �? / 开头防止递归
  • �? ! 开头表示取�?
  • 可以使用 glob 模式进行文件和文件夹的匹�?

glob模式 - 简化的正则表达式:

  • 星号 * 匹配零个或多个任意字�?
  • [abc] 匹配任何一个列在方括号中的字符
  • 问号 ? 只匹配一个字�?
  • [0-9] 表示所有在这两个字符范围内的都可以匹配
  • 两个星号 ** 表示匹配中间目录(a/**/z 可以是a/z , a/b/z...�?

案例

# 忽略所有的 .a文件
*.a
# 跟踪所有的 lib.a 文件
!lib.a
# 只忽略当前目录下�? TODO 文件,而不忽略文件夹下�? xxx/TODO 文件
/TODO
# 忽略任何目录下名�? build 的文件夹
build/
# 忽略 doc/notes.txt , 但不忽略 doc/server/arch.txt
doc/*.txt
# 忽略 doc/ 目录及其所有子目录下的 .pdf 文件
doc/**/*.pdf
1
2
3
4
5
6
7
8
9
10
11
12
编辑 (opens new window)
上次更新: 2023/02/07, 14:51:48
git快速上手
GitHub

← git快速上手 GitHub→

Theme by Vdoing | Copyright © 2021-2023 yuadh
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式
×