【问题标题】:What exactly does ‘git checkout commit-sha’ do?“git checkout commit-sha”到底是做什么的?
【发布时间】:2020-02-14 15:31:36
【问题描述】:

没有文件路径,具体是做什么的

git checkout commit-sha

做吗?

谁能给我解释一下?

【问题讨论】:

  • 它将树从 commit-sha 写入工作目录,并将 HEAD 设置为 commit-sha
  • 但是当我在工作目录中更改我的文件时,git 有时会拒绝结帐
  • 当它拒绝时,它会警告您否则它将覆盖工作目录中的文件,并建议您提交或存储它们。这是适当的行为。
  • 有人说它不会更改本地更改,有人说它将所有文件更改为该特定提交
  • 我发现如果有本地的变化,当是最后一个commit id时,会批准checkout,否则会被拒绝。当没有本地更改时,它将始终被授予。

标签: git git-checkout git-reset


【解决方案1】:

Git 将尝试检查给定的提交,因为 Git 称之为 分离的 HEAD

与任何git checkout 一样,操作可能会成功,也可能会失败。失败的主要原因是当您有未提交的工作时尝试检查其他提交。

当您确实有未提交的工作有时成功时检查其他提交/其他分支。这种明显差异的解释在Checkout another branch when there are uncommitted changes on the current branch

如果检出成功,则您有一个分离的 HEAD,并且您的索引和工作树已从目标提交中填充。如链接的问题和答案中所述,如果您有未提交的更改,它们已被保留:在这种情况下,至少 一些 索引和工作树文件 匹配选定的提交。

【讨论】:

    猜你喜欢
    • 2020-04-14
    • 1970-01-01
    • 2013-11-27
    • 2014-11-18
    • 2017-11-12
    • 2012-03-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多