跳至主要內容

git checkout

Sankgao约 738 字大约 2 分钟命令集Git

描述

git checkout 用于切换分支或恢复工作目录树文件。

选项

选项描述
-q, --quiet不显示输出内容
-f, --force放弃工作区和暂存区的所有修改
-b创建并切换分支
-t, --track创建分支并与远程分支关联
--orphan=<new_branch>新建并切换到新分支上,同时这个分支没有任何 commit

示例

切换分支

使用 git checkout <branch-name> 可以切换到指定的分支。如果该分支不存在 Git 会报错。

例如:切换到 dev 分支。

git checkout dev

切换上一个分支

例如:切换到上一个分支。

git checkout -

从另一个分支签出单个文件

如果本地有相同文件,则会覆盖本地文件。

例如:从 dev 分支签出 test 文件到本地。

git checkout dev -- test

提示

为避免引用(或者提交 ID)和路径同名而发生冲突,可以在 <path> 前用两个连续的短线(--)作为分隔。

例如:从历史(前一次提交)中恢复 welcome.txt 文件到当前工作区中。

git checkout HEAD~1 -- welcome.txt

恢复工作区文件

如果工作区的文件被修改了但还没有提交到暂存区,可以使用 git checkout -- <file> 来恢复这个文件到最新的提交状态,这实际上会丢弃工作区中对这个文件的修改。

例如:放弃对工作区 test 文件的修改。在修改工作区文件后和执行 git checkout -- <file> 命令后分别用 git status 命令查看当前 Git 状态。

vim test
git status
git checkout -- test
git status

例如:放弃对工作区所有文件的修改。

git checkout -- .
# 或
git checkout .

恢复工作区和暂存区文件

如果工作区的文件修改后并提交到暂存区,可以使用 git checkout -f 命令,将丢弃工作区和暂存区文件所有文件的修改。

例如:放弃工作区和暂存区的所有修改。

vim test
git add test
vim test01.txt
git status
git checkout -f
git status

例如:放弃工作区和暂存区的所有修改,并切换到 test 分支。

vim test
git add test
vim test01.txt
git status
git checkout -f test
git status

创建并切换分支

使用 git checkout -b <new-branch-name> 可以创建一个新的分支,并立即切换到这个新分支。

例如:创建并切换到 test 分支。

git checkout -b test

例如:在指定基准点(<commit id>)处创建并切换到 test 分支。

git checkout -b test <commit id>

例如:创建并切换到 test 分支,并与远程分支关联。

如果本地文件名有和远程分支名一样,也可以使用此方法切换到远程分支。

git checkout -b test origin/test

创建并与远程分支关联

例如:创建并切换到 test 分支,并与远程分支关联。

git checkout -t origin/test