git checkout,切换分支或者恢复工作区文件。
语法
1 2 3 4 5 6 7 | git checkout [-q] [-f] [-m] [<branch>] git checkout [-q] [-f] [-m] --detach [<branch>] git checkout [-q] [-f] [-m] [--detach] <commit> git checkout [-q] [-f] [-m] [[-b|-B|--orphan] <new_branch>] [<start_point>] git checkout [-f|--ours|--theirs|-m|--conflict=<style>] [<tree-ish>] [--] <paths>… git checkout [<tree-ish>] [--] <pathspec>… git checkout (-p|--patch) [<tree-ish>] [--] [<paths>…] |
描述
根据索引和指定树来更新工作区文件,如果没有给定路径,那么HEAD也被更新为指定的分支。
git checkout branch
切换到branch分支,更新索引和文件,将HEAD指向branch,本地修改被保留。
如果branch不存在,但是存在一个tracking branch,等价于
git checkout -b branch --track <remote>/<branch>
可以省略branch,等于重新checkout当前branch
git checkout -b|-B <new_branch> [<start point>]
创建新分支,并且换到新的分支,可以使用--track或者--no-track,使用--track选项没有-b选项也是创建分支。
git checkout --detach [<branch>]
git checkout [--detach] <commit>
创建一个DETACHED HEAD。
git checkout [<tree-ish>] <pathspec>
从索引或指定tree中替换指定路径的文件。如果tree-ish给定了,则更新索引和工作区中pathspec指定的内容。
选项:
-f
--force
切换分支时,即使index和工作区和HEAD不同,也继续进行,用来抛弃任何本地的改动。
当从索引checkout路径时,即使有未合并的条目,也不要失败。