# 仓库

# git init

$ git init

# git add

$ git add readme.txt

Git Version 1.x:

New Files Modified Files Deleted Files
git add -A
git add . ×
git add -u ×

Git Version 2.x:

New Files Modified Files Deleted Files
git add -A
git add .
git add --ignore-removal . ×
git add -u ×

# git commit

$ git commit -m "add a readme file"

# git status

$ git status

# git reset

HEAD 表示当前版本,上一个版本就是 HEAD^,上上一个版本就是 HEAD^^,可以简写为 HEAD~100

$ git reset --hard HEAD^
$ git reset --hard 1094a
# 撤销暂存区的修改,重新放回工作区
$ git reset HEAD file

# git checkout

# 丢弃工作区的修改
$ git checkout -- file
# 丢弃工作区和暂存区的修改
$ git checkout HEAD file

Sparse Checkout

$ git config core.sparsecheckout true
$ git init
$ git remote add origin https://github.com/git/git.git
$ echo "README.md" >> .git/info/sparse-checkout
$ git pull origin master

# git restore

# 丢弃工作区的修改
$ git restore --worktree file
# 撤销暂存区的修改,重新放回工作区
$ git restore --staged file
# 丢弃工作区和暂存区的修改
$ git restore --source=HEAD --staged --worktree file

# git diff

# 工作区 ↔ 缓存区
$ git diff
# 缓存区 ↔ 库(HEAD)
$ git diff --cached
# 工作区 ↔ 库(HEAD)
$ git diff HEAD -- filename
# 库 ↔ 库
$ git diff 243550a 24bc01b filename

# git log

$ git log
$ git log --pretty=oneline
# 分支合并图
$ git log --graph --pretty=oneline --abbrev-commit

# git reflog

$ git reflog