Git 如何在不签出的情况下将另一个分支重置为原点?

Git 如何在不签出的情况下将另一个分支重置为原点?,git,Git,我的典型工作流程是签出master并键入git reset--hard@{u}。 从那里,我将签出要合并master的分支,并合并master 我是否可以在不更改的情况下执行更新master的步骤?(这将有助于我在更换时不隐藏) 例如,我在分支A上,它是从master分支而来的主控已经完成,我有很多更改,不想执行隐藏,所以我不想执行 git隐藏 git签出主机 git重置--hard@{u} git签出A git合并主机 git pop隐藏(伪) 我希望能够在当前处于分支a时,对master执行

我的典型工作流程是签出
master
并键入
git reset--hard@{u}
。 从那里,我将签出要合并master的分支,并合并
master

我是否可以在不更改的情况下执行更新
master
的步骤?(这将有助于我在更换时不隐藏)

例如,我在分支
A
上,它是从
master
分支而来的<代码>主控已经完成,我有很多更改,不想执行隐藏,所以我不想执行

  • git隐藏
  • git签出主机
  • git重置--hard@{u}
  • git签出A
  • git合并主机
  • git pop隐藏(伪)
  • 我希望能够在当前处于分支
    a
    时,对
    master
    执行
    git重置--hard@{u}

    我可以在不更改主控形状的情况下执行更新主控形状的步骤吗

    是的,看


    我不认为这些答案涉及对其进行硬重置

    当您不签出其他分支时,硬重置没有意义

    如果不进行合并,也可以使用软重置而不是混合重置来避免
    隐藏

    因此(几乎)您的所有步骤都浓缩为一个
    分支
    或软
    重置
    命令,如该答案中所述


    一般来说,您的工作流程似乎很奇怪。要更新
    master
    以与上游同步,通常需要快进
    merge
    更改。但是没有必要这样做,您可以在
    获取后将您的工作分支建立在远程分支之上

    此外,您通常会将
    master
    合并到您的本地分支以保持同步,或者
    rebase
    您的分支位于
    master
    之上;取决于您的工作流样式(无论您是否希望历史更加线性)

    一般来说,使用
    隐藏
    ,应该是很少见的事情

    我可以在不更改主控形状的情况下执行更新主控形状的步骤吗

    是的,看


    我不认为这些答案涉及对其进行硬重置

    当您不签出其他分支时,硬重置没有意义

    如果不进行合并,也可以使用软重置而不是混合重置来避免
    隐藏

    因此(几乎)您的所有步骤都浓缩为一个
    分支
    或软
    重置
    命令,如该答案中所述


    一般来说,您的工作流程似乎很奇怪。要更新
    master
    以与上游同步,通常需要快进
    merge
    更改。但是没有必要这样做,您可以在
    获取后将您的工作分支建立在远程分支之上

    此外,您通常会将
    master
    合并到您的本地分支以保持同步,或者
    rebase
    您的分支位于
    master
    之上;取决于您的工作流样式(无论您是否希望历史更加线性)


    通常,使用
    stash
    应该是一件罕见的事情。

    试试
    git-worktree

    git worktree add /path/to/foo master
    cd /path/to/foo
    git reset --hard @{u}
    # remove the working tree when it's not needed any more
    git worktree remove /path/to/foo
    
    它在另一个工作树中签出
    master
    ,并且不影响已签出
    A
    的当前工作树


    但是,为什么要坚持使用git reset--hard
    git update ref
    确实是一个更好的解决方案。

    试试
    git worktree

    git worktree add /path/to/foo master
    cd /path/to/foo
    git reset --hard @{u}
    # remove the working tree when it's not needed any more
    git worktree remove /path/to/foo
    
    它在另一个工作树中签出
    master
    ,并且不影响已签出
    A
    的当前工作树


    但是,为什么要坚持使用git reset--hard
    git update ref
    确实是一个更好的解决方案。

    这里回答了这个问题:这是否回答了您的问题?我不认为这些答案涉及对其执行硬重置。只需使用
    git merge origin/master
    ?无需在本地
    master
    分支上结帐或碰头,只需将
    origin/master
    上的内容合并到分支中即可。您可以直接合并
    origin/master
    ,这与第1/3步相同。这里回答:这是否回答了您的问题?我不认为这些答案涉及对其执行硬重置。只需使用
    git merge origin/master
    ?无需在本地
    master
    分支上结帐或碰头,只需将
    origin/master
    上的内容合并到分支中即可。您可以直接合并
    origin/master
    ,这与第1/3步相同。该问题的答案似乎是更新
    master
    以匹配
    A
    ,而不是,重置要更新到上游状态的
    master
    ,然后使用
    master
    更新
    A
    。无论您试图将另一个分支更新到什么位置,都可以根据需要将其指向任意提交。当然,合并它是它自己的步骤(编辑答案以澄清)。再次编辑以添加更多提示,因为您使用的工作流听起来可能会有很大改进。该问题的答案似乎是更新
    master
    以匹配
    A
    ,而不是,重置要更新到上游状态的
    master
    ,然后使用
    master
    更新
    A
    。无论您试图将另一个分支更新到什么位置,都可以根据需要将其指向任意提交。当然,合并它是它自己的步骤(编辑答案以澄清)。再次编辑以添加更多提示,因为您使用的工作流听起来可能会有很大改进。在我发现
    git-update-ref
    之前,我没有使用
    git-fetch
    git-reset-hard{u}
    这是一种可靠的说法