git reset
1. git reset [-q] [<commit>] [--] <path>
带有路径path时,path如果和引用或commitID同名,可在path前加 --
用<commit>里的<path>文件,替换暂存区中的文件,工作区和版本库不变 省略commit则为HEAD
2. git reset [--soft | --mixed | --hard | --merge | --keep] [-q] [<commit>]
将HEAD指向的引用重置为commit 省略commit则为HEAD
--soft 改变版本库
--mixed 改变版本库、暂存区(默认)
--hard 改变版本库、暂存区、工作区
git checkout
1. git checkout [-q] [<commit>] [--] <path>
带有路径path时,path如果和引用或commitID同名,可在path前加 -- path为.表示全部文件
用<commit>里的<path>文件,替换暂存区和工作区中的文件,版本库不变 省略commit则为index
2. git checkout [<commit>]
将HEAD指向commit,并覆盖版本库、暂存区、工作区,需要在clean状态下才能操作
如果没有引用指向commit,那么处于“分离头指针”状态
commit为引用时,即切换分支, 省略commit或者commit为HEAD,相当于进行状态检查
3. git checkout [-m] [[-b|--orphan] <new_branch>] [<start_point>]
主要用来创建和切换到新分支 git checkout -b dev
新分支指向start_point这个commit
如果只有一个远程库origin,底下有一个develop分支,本地没有develop分支,
那么git checkout develop会创建并切换到develop分支,并与origin/develop关联
如果有多个远程库,那么需要git checkout -b develop origin/develop
原文:https://www.cnblogs.com/ts65214/p/12967327.html