引入 git switch 后 git checkout 还能做啥?

Posted

技术标签:

【中文标题】引入 git switch 后 git checkout 还能做啥?【英文标题】:What does git checkout still do after git switch got introduced?引入 git switch 后 git checkout 还能做什么? 【发布时间】:2021-06-12 05:08:51 【问题描述】:

众所周知,git checkout 是一个非常重载的命令。而且我确实理解某些命令被引入来分发,例如到git switch

在我使用以下命令之前:

$ git checkout <existing-branch>
$ git checkout <hash>
$ git checkout -b <new-branch-name>

所以我想知道git switch被介绍之后,git-checkout的左目的是什么?这是一个弃用的命令吗?

【问题讨论】:

git-checkout 也可用于恢复工作树文件。 (编辑:似乎你可以使用git-restore 这能回答你的问题吗? What's the difference between git switch and git checkout <branch> 谢谢,但不幸的是,它没有。它只说git switch 的好处,而不是留下什么 git checkout 命令当然仍然执行它之前所做的一切。 :-) 实际上,它已经得到了改进:它过去的不良行为,破坏工作,现在出现在抱怨命令不明确。 (切换和恢复没有这个问题。) 非常感谢..! 【参考方案1】:

保留它至少是为了向后兼容。想想数以百万计的脚本仍然使用git checkout——我们应该赶紧重写所有这些吗?当然不是。

实际上,它甚至没有被弃用。 the docs 中没有关于弃用的内容。另一方面,git restoregit switch 的文档说“这个命令是实验性的。行为可能会改变。”

【讨论】:

以上是关于引入 git switch 后 git checkout 还能做啥?的主要内容,如果未能解决你的问题,请参考以下文章

GitGit 分支管理 ( 创建并切换分支 git switch -c dev | 切换分支 git switch dev )

错误记录Git 使用报错 ( git: ‘switch‘ is not a git command. See ‘git --help‘. )

错误记录Git 使用报错 ( git: ‘switch‘ is not a git command. See ‘git --help‘. )

git push报错:remote: error: refusing to update checked out branch: refs/heads/master

IntelliJ IDEA Check out from git

错误记录Git 使用报错 ( error: Cannot delete branch ‘dev‘ checked out at ‘D:/Git/git-learning-course‘)