1.Git 基本原理
Git是分布式版本控制的一种工具。本地的每一个用户都可以查看所有的版本历史,可以离线在本地提交,联网时就可以push到服务器。
Git 有几个工作层次:
- 工作区:平时写/改代码就在这个层次
- 暂存区:临时存放改动,其本质上就是一个保存即将提交的文件的信息列表
- 本地仓库:安全存放数据的位置,这里有所有历史版本
- 远程仓库:托管代码的服务器
Git 管理的文件有几种状态:
- 未跟踪(untracked),此文件在文件夹中,但不参与版本控制,可以变为staged(git add)
- 未修改(unmodified),对工作区暂存的内容进行提交(git commit)
- 已修改(modified),对工作区的文件进行修改
- 已暂存(staged),对工作区修改的内容进行暂存(git add)
查看状态用 git status
状态改变:

2.Git 下载、配置
直接在Git官网下载,或者在镜像网下载。
目前我是在Windows中下载,在任意路径下右击鼠标就能看到:
选择Git Bash,就可以打开Bash风格的终端(Bash在Linux下常用,Bash常用知识以后补)
配置:
# 查看所有配置
git config -l
# 查看系统配置
git config --system --list
# 查看用户配置
git config --global --list
Git的配置文件分为 system 和 global 的:
- system 是系统配置,是 Git 安装目录下的 gitconfig,配置文件在 Git\etc\.gitconfig
- global 是全局配置,是 当前登录用户的配置,配置文件在 C:\Users\uesr_name\ .gitconfig
下载 Git 后配置用户信息:
git config --global user.name "your_name"
git config --global user.email "your_email"
这些用户信息会影响每一次提交的信息,每次提交都会嵌入这些提交信息
3.Git 使用
3.1 Git 项目的来源
在本地新建一个Git代码库,可以看到在项目目录会多出一个.git目录,存储关于版本的信息
git init
克隆远程仓库
git clone [url]
url:https 和 ssh 有区别
3.2 常用操作
最常用的操作见图1.
其他操作:
- 提交记录
# 查看当前分支的历史提交记录
git log
# 更优雅地记录,显示全部分钟、分支图显示、可显示分支名称
git log --all --graph --decorate
- 撤销
# 提交完了才发现漏掉了几个文件没有添加,或者提交信息写错了
# 运行--amend提交后,新的提交会覆盖原来的提交信息
git commit --amend
# 取消暂存, staged -> modified
git reset HEAD <file>
# 撤消修改——将它还原成上次提交时的样子, modified -> unmodified
git checkout -- <file>
更多关于reset和checkout:Git - 重置揭密
关于 git reset
结点撤销:
- git reset --soft,只是移动 HEAD 分支的指向
- git reset --mix,移动 HEAD 分支的指向,并使索引看起来像 HEAD
- git reset --hard,移动 HEAD 分支的指向,使索引看起来像 HEAD,并使工作目录看起来像索引
文件撤销:
- 若指定了一个路径,
reset
将会跳过第 1 步,并且将它的作用范围限定为指定的文件或文件集合
- 分支
- 远程操作