用远程跟踪分支覆盖本地分支(分支已经发散)
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.y 和 origin/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
我使用以下命令创建了一个名为 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.y 和 origin/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