# 仓库
# 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