Git checkout

本文最后更新于:2024年9月8日 晚上

Git checkout

还原文件

恢复暂存区的所有文件到工作区

1
$ git checkout

恢复暂存区的指定文件到工作区

1
$ git checkout --[file]
  • 如果文件名不是分支名可省略–

恢复某个 commit 的指定文件到暂存区和工作区

1
$ git checkout [commit] [file]

分支操作

切换到指定分支,并更新工作区

1
$ git checkout [branch-name]

新建一个分支,并切换到该分支

  • git 的分支其实就是添加一个指向快照的指针,切换分支除了修改 HEAD 指针的指向,还会改变暂存区域和工作目录的内容。
1
git checkout -b [branch] [tag]
  • [tag]:指向指定 tag

匿名分支

1
git checkout <commit-id>
  • 如果不指定分支名,而指定版本号,那么 git 会自动帮你创建一个匿名分支,此时 stage 和 workspace 还原成该版本。
  • 此时 HEAD 指针是游离的,当你切换到别的分支时,这个匿名分支所做的所有操作提交都会被抛弃掉。

基于匿名分支创建新分支

1
git checkout -b <commit-id>

创建孤立分支

1
git checkout --orphan <new_branch>
  • 它会基于当前所在分支新建一个赤裸裸的分支,没有任何的提交历史,但是当前分支的内容一一俱全。
  • 新建的分支,严格意义上说,还不是一个分支,因为 HEAD 指向的引用中没有 commit 值,只有在进行一次提交后,它才算得上真正的分支。

本地分支与远程分支关联

  • 本地新建一个分支名叫 branch_name ,会自动跟踪远程的同名分支 branch_name
1
git checkout --track origin/branch_name

本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!