我已经完全混乱了我的本地分支,并希望重新开始。在服务器上的版本是正确的。
我不想重新开始,我想用我的本地历史来弥补我的大错。如果有必要,我可以
git fetch branchname和 git pull branchname都不起作用。然而,我得到的消息是“ 最新的”,我的本地版本与服务器的版本不匹配。
git fetch branchname
git pull branchname
git pull origin/branchname给我一个“ 没找到”错误。
git pull origin/branchname
您的本地分支可能已经对其进行了修改,您希望丢弃它。要做到这一点,您将需要使用 git reset来重置分支头的最后一点,您从上游回购的分支。使用 git branch -v找到上游分支的 sha1 id,并使用 git reset SHA1ID重置分支。然后,您应该能够执行 git checkout来丢弃它在您的目录中留下的更改。
git reset
git branch -v
git reset SHA1ID
git checkout
注意: 总是在备份的回购中这样做。这样你就可以确保你自己,它的工作正确。如果没有,你还有备份。
首先,在当前位置创建一个新分支(以防你需要旧的“糟糕”历史记录) :
git branch fubar-pin
更新远程分支列表并同步新提交:
git fetch --all
然后,将分支重置到原点/分支指向的位置:
git reset --hard origin/branch
小心 ,这将删除您的 工作树的任何更改!
当我搞砸了我的本地分支时,我只需要重新命名我的损坏的分支,然后再次检查/分支上游分支:
git branch -m branch branch-old git fetch remote git checkout -b branch remote/branch
然后,如果你确定你不想从你的旧分支中得到任何东西,把它移除:
git branch -D branch-old
但通常我会把旧树枝留在附近,以防万一。
git reset --hard
这是将所有本地更改还原到原始头