三个基本概念:
- 工作区(working directory)
- 暂存区(index)
- 版本库(respository, HEAD, master)
基本命令:
- git add [filePath]
- git commit -m "comment"
将暂存区中的变化提交到版本库(
暂存区 ->
版本库)
- git checkout -- [filepath]
将暂存区中的文件替换工作区 (
暂存区 ->
工作区)
- git reset HEAD
将版本库中master指向的替换暂存区(
master->
暂存区)
- git rm --cached <file>
删除暂存区中的文件
- git reset --hard HEAD^
HEAD^代表HEAD的父提交; --hard 表示:
- 替换引用的指向:HEAD 指向父提交
- 父提交中的内容替换暂存区
- 父提交中的内容替换工作区
如果不用hard 而用soft参数,那么只执行 1 操作。
如果不指定参数,或用mixed, 那么执行 1,2 操作,不改变工作区
HEAD通常指向上一次的提交。git reset --hard HEAD^就相当于撤销最近的提交
- git checkout [-q] [<commit>] [--] <paths>
检出命令主要是覆盖工作区,如果<commit>参数省略的话。paths用于指定工作区的文件。
- git checkout [<branch>]
将HEAD切换到另一个分支。如果指定的不是分支而是提交id,则会进入“分离头指针”状态。
- git checkout [-m] [[-b| --orphan] <new_branch>] [<start_point>]
创建和切换到新的分支。