git - git checkouts 到底是什么意思?

标签 git git-checkout

git 中的checkout 是什么?

我知道一旦您对特定分支执行 checkout 操作,HEAD 就会指向该分支。但这到底意味着什么?这是否意味着我可以在那个分支上工作?如果是,那么,如果不 checkout 分支,我就不能在上面工作吗?

另外,remote checkout 是什么意思?它有什么用?

最佳答案

如您所述,HEAD是一个标签,指出您在提交树中的位置。当您从一个提交移动到另一个提交时,它会随着您移动。 git checkout <commit>是在提交树中移动的基 native 制,将您的焦点 ( HEAD ) 移动到指定的提交。

可以通过多种方式指定提交,提交哈希、分支名称、标记名称、相关语法( HEAD^HEAD~1 等)等等。将 check out 视为更改分支通常很有用,从这个角度来看,有一些选项可行,但它们都引用提交。

检查提交除了移动 HEAD 之外还有一些副作用周围。

  • 工作目录更新为 checkout 提交的状态。
  • 如果指定了分支名称,checkout 会使该分支处于事件状态。事件分支将与添加的任何新提交一起移动。
    • -b选项将根据当前提交创建一个新分支,然后将其激活。
    • --track选项可以让 checkout 的分支知道远程分支
    • --orphan选项创建一个新分支(与 -b 一样)但不会基于任何现有提交。

还有更多选项,您可以在 git checkout man-page 中阅读,所有这些都围绕着从一个提交移动到另一个提交——除了移动 HEAD 之外,移动的影响也有所不同。 .

关于git - git checkouts 到底是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15296473/

相关文章:

git - 是否可以将 komodo edit 用作 git core.editor(即不 fork )?

git - 意外 checkout 后取回更改?

git - 如何从另一个分支获取一个文件?

ios - 删除文件时从分支中提取更改

git - 是否可以在不检查的情况下快进另一个分支?

bash - GIT 克隆 SSH 在本地工作,但不能通过远程脚本工作

Git checkout 标签问题 - 标签未更改

git ls-tree -rd 在子目录中工作很奇怪

git - 如何使用 Github Actions 查看最新提交?

git - 显示你在哪个 git 标签上?