git checkout 命令

这篇具有很好参考价值的文章主要介绍了git checkout 命令。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

git checkout

git checkout 命令用于更新工作区的文件使它们和指定提交或暂存区保持一致,也就是会从指定提交(或者暂存区)中拷贝文件到工作区替换掉原有的文件,也可用于切换分支(切换分支的同时也会更新工作区和暂存区的文件)。

更新文件

更新工作区的指定文件,使它和暂存区保持一致:

git checkout -- <file>

这个命令也就是撤销工作区对文件的修改。
-- 选项的作用是表明其后的内容是目录或文件,而不是分支名,避免有文件名和分支名一样而出错的情况,因为 git checkout 后面直接加分支名就成了切换分支了,在保证不会混淆的情况下,可以直接使用以下命令:

git checkout <file>

同时更新工作区和暂存区的指定文件,使它和指定提交保持一致:

git checkout <commit> <file>

比如将提交设为 HEAD:

git checkout HEAD <file>

这个命令更新工作区和暂存区的指定文件,使它和当前提交保持一致,也就是会把工作区和暂存区中对该文件的修改全部撤销,恢复到上一次 git commit 后的状态。

  • 上面命令中的 file 不一定只是一个确定的文件名,也可以是目录,还可以是匹配多个文件名的模式,比如 *.py 匹配所有以 .py 结尾的文件。

进一步,有以下两种用法:

(1)更新当前目录(和子目录)的所有文件,使它们和暂存区保持一致:

git checkout .

也就是撤销当前目录中的所有修改,包括删除的文件,但是未跟踪的文件不受影响。

(2)更新当前目录(和子目录)和对应的暂存区的所有文件,使它们和当前提交保持一致:

git checkout HEAD .

也就是撤销当前目录和对应暂存区中的所有修改,同样未跟踪文件不受影响。

  • 上面这两个命令只是针对执行命令时所处的目录起作用,因为 .(句点)在 shell 中代表当前目录,比如在工作区子目录下执行这两个命令,就只会对这个子目录(和子目录的子目录)起作用,并不会影响到工作区的其它文件。
  • 注意以上更新文件的命令都不会切换分支。

切换分支

如果给 git checkout 命令指定分支名作为参数,那么就可以用来切换分支:

git checkout <branch>

这个命令切换到指定分支,并将暂存区和工作区的文件更新到和该分支的最新提交一致,但是如果当前工作区或暂存区还有修改没有提交,那么这个命令会失败。

  • 切换分支后 HEAD 将指向对应的分支名,而该分支名指向它的最新提交(分支名实际上是一个指向它的最新提交的指针)

使用以下命令创建分支的同时切换到该分支:

git checkout -b <branch> [<start-point>]
或:
git checkout -B <branch> [<start-point>]

可以指定新分支基于哪一个提交 start-point 建立。
-B 选项的特殊之处在于如果要创建的分支已经存在,那么会把该分支重置到指定的 start-point 上,而 -b 选项则无法创建,会提示分支已经存在。

使用以下命令在当前提交新建分支,并设置跟踪指定的远程分支。

git checkout -b <branch> --track <remote>/<branch>

分离头模式

如果不给 git checkout 命令指定分支名,而是指定提交的校验和、标签名或者 master^ 形式的提交历史作为参数,那么就会进入分离头模式,此时 HEAD 与分支分离了(日常工作中 HEAD 总是指向某个分支),直接指向了提交,在这种情况下,提交新内容会产生问题,因为新提交不会更新分支,这个新提交就只能通过校验和来访问,一旦切换到其它分支,基本就找不到这个新提交了。为避免产生这样的问题,可以基于某个提交创建新分支然后切换过去进行工作:

git checkout -b <branch> [<start-point>]

不过,这种模式可以快速的切换到历史版本,可以方便的基于历史版本进行编译、安装软件,如果不需要进行提交,那么这是一种方便的工作方式。文章来源地址https://www.toymoban.com/news/detail-490527.html

到了这里,关于git checkout 命令的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 做了个vscode 小插件,用于修改window 的颜色以区分同时打开的不同工作区,快用起来吧!

    marketplace/coralize 以高效且便捷的方式自定义Visual Studio Code工作区窗口的状态栏、标题栏以及活动边栏等颜色!这将对那些需要同时打开多个vscode窗口/工作区的人非常有用。Coralize提供了一系列中国传统文化色彩,并搭配友好的用户界面。 Customize the color scheme of Visual Studio Cod

    2024年02月03日
    浏览(51)
  • Git——三大分区【工作区 / 暂存区 / 版本区】

    前言 :Git作为一个版本管理工具,最核心组成思想是它的三个分区:工作区、暂存区和工作区。   Git的工作区也就是我们平时编辑代码的目录文件夹。   暂存区就是一个 暂时放置修改文件记录 的地方。以往仓库中放货物为例,向仓库中放货物总是一车车的拉,因为如

    2024年02月06日
    浏览(62)
  • idea将文件移出git的工作区

    之前使用idea在commit项目时候,忘记添加.gitignore文件了,导致提交了很多无关的文件进入远程仓库,网上有教程是使用git - reset head 方法,但是这个方法只是将上一次的commit文件覆盖当前的暂存区文件,而非移除暂存区文件,所以没有用   但是在idea工具好像并没有提供将文件移

    2024年02月13日
    浏览(45)
  • git 将其它分支的文件检出到工作区

    主要是使用如下命令: 覆盖与 pathspec 匹配的文件的内容。当没有给出 tree-ish (通常是一个commit)时,用 index 中的内容覆盖工作树。当给出 tree-ish 时,用 tree-ish 处的内容同时覆盖 index 和工作树。 由于前一个的合并失败,index 可能包含未合并的条目。默认情况下,如果您试图从

    2023年04月09日
    浏览(39)
  • Git分支管理的原理 & 工作区、暂存区的分支共享

    首先,Git是 版本 控制系统,所以Git的存储基本数据单元是不同的 版本对象 ,对应的就是不同的commit。换句话说,我们每commit一次,就是一个版本,也就是一个Git存储单元。 2.1 只有 main 分支时 当只有main分支时,在修改过文件且进行git add 和 git commit 操作后,目前的文件就会

    2024年02月03日
    浏览(41)
  • 【Git】第四篇:基本操作(理解工作区、暂存区、版本库)

    工作区 :就是我们创建的本地仓库所在的目录 暂存区 : stage或index,一般放在.git(可隐藏文件)目录下的index文件(.git/index)中,所以我们把暂存区有时候也叫做索引(index) 版本库 :工作区有一个隐藏目录 .git ,所说的版本库就是隐藏的.git目录。 下面的图详细展示了三者

    2024年02月04日
    浏览(53)
  • Git详解(带图) --- 本地电脑的工作区、暂存区、本地仓与远程仓

    在 git 的丰富功能中,工作区 (Work Space)、暂存区 (Index/Staging Area)、本地仓库 (Local Repository) 和远程仓库 (Remote Repository) 被认为是四大核心概念。今天让我们深入了解这些神秘的组成部分,揭开它们的面纱,让你能够更好地利用Git来管理项目。 上图相信大家再熟悉不过,这是我

    2024年01月18日
    浏览(45)
  • 【Linux】:初识git || centos下安装git || 创建本地仓库 || 配置本地仓库 || 认识工作区/暂存区(索引)以及版本库

    Git 原理与使用 课程⽬标 • 技术⽬标:掌握Git企业级应⽤,深刻理解Git操作过程与操作原理,理解⼯作区,暂存区,版本库的含义 • 技术⽬标:掌握Git版本管理,⾃由进⾏版本回退、撤销、修改等Git操作⽅式与背后操作原理 • 技术⽬标:掌握Git分⽀管理,从分⽀创建,切换,

    2024年02月05日
    浏览(61)
  • VS Code工作区用法

    背景 VS Code可以通过\\\"文件/打开文件夹\\\"来打开本地项目,但是想要打开多个项目便需要来回切换,比较费劲。此时就可以使用工作区功能,将不同的项目放置到同一个工作区中,这样切换项目的时候就会非常方便。 操作方法 打开其中一个项目 执行命令:文件 》 打开文件夹

    2024年01月25日
    浏览(60)
  • VScode 工作区配置 和 用户配置

    通常不同的项目都有不同的配置,我一般都是使用eslint和prettier一起用,所以经常会有这几个文件: 这里简单介绍一下这几个文件的作用吧。 一般有两个文件,extensions.json和settings.json。 extensions.json 文件是用来配置推荐安装的 VS Code 插件的文件。在这个文件中,你可以列出你

    2024年01月24日
    浏览(52)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包