【问题标题】:porcelain git command that does exactly the same thing as "git symbolic-ref HEAD refs/heads/my_branch"?与“git symbolic-ref HEAD refs/heads/my_branch”执行相同操作的瓷 git 命令?
【发布时间】:2020-07-07 16:26:34
【问题描述】:

我经常使用git symbolic-ref HEAD refs/heads/my_branch 移动到另一个分支而不接触索引或工作树。

是否有一个“瓷器”命令或一系列命令完全相同做同样的事情?

这可能涉及git reset 和git checkout。

我见过各种声称给出此类命令的答案,例如here,但结果似乎总是略有不同,所以我总是最终放弃并回到旧的symbolic-ref。

【问题讨论】:

    标签: git


    【解决方案1】:

    我经常做 git symbolic-ref HEAD refs/heads/my_branch 来移动到另一个分支而不接触索引或工作树。

    那是……不寻常的工作流程。 :-)(它确实有效,如果这是您想要实现的,那没关系。)

    是否有一个“瓷器”命令或一系列命令完全相同做同样的事情?

    不——至少,一般来说不是。

    HEAD 要么绑定到分支名称(正常状态,“在”分支上),要么绑定到提交哈希 ID(“分离的 HEAD”)。在正常状态下,将 new 分支名称放入 HEAD 的唯一瓷器(非管道)方法是使用分支切换命令:git checkout,或者,从 Git 2.23 开始,@ 987654324@。两者都坚持将索引和工作树更新到所需的任何程度。有时这只是少量的更新,可能对您有用。

    在 detached-HEAD 状态下,如果新状态也被分离,git reset --soft 将完成这项工作 - 但在这种特殊情况下,您需要使用 git update-ref 而不是 git symbolic-ref 在通过以下方式完成工作时管道命令。特别是,git reset <em>hash</em> 让您处于 detached-HEAD 状态。

    在 attach-HEAD 状态下使用 git reset 会将 HEAD 的目标(HEAD 附加到的分支)移动到选定的提交,而 git symbolic-ref 不会。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-10-26
      • 1970-01-01
      • 1970-01-01
      • 2022-01-12
      • 1970-01-01
      • 2017-12-07
      • 1970-01-01
      • 2022-08-15
      相关资源
      最近更新 更多