用远程跟踪分支覆盖本地分支(分支已经发散)

Overwrite local branch with remote tracking branch (branches have diverged)

我使用以下命令创建了一个名为 my-4.3.y 的新分支 (注意:my-4.3.y 被设置为从原点跟踪远程分支 4.3.y

git checkout -b my-4.3.y origin/4.3.y

我没有在 my-4.3.y 分支上工作过。 现在,几天后,当我 运行:

git status

它告诉我 my-4.3.yorigin/4.3.y分歧.

我不在乎分支在哪里以及为什么分支,我不想合并 远程分支到我的。我只希望我的分支等于远程 再次分支。

所以,我正在做的是:(1) 检查其他分支 (2) 删除 my-4.3.y 和 (3) 检查它再次:

git checkout some_other_branch
git branch -D my-4.3.y
git checkout -b my-4.3.y origin/4.3.y

有更简单的方法吗?

您可以使用 git reset --hard 强制您当前签出的分支到您想要的任意点。

注意:使用 --hard 不是工作目录安全的,并且会丢弃您所做的任何更改。

对于更新到跟踪分支的特定情况,您可以使用 @{u} 指定上游

git reset --hard @{u}

通常,您可以传入任何分支引用或任何其他内容 Git 解析为提交,例如

git reset --hard origin/4.3.y