用远程分支覆盖我的本地分支

我已经完全取消了我的本地分支,并且希望重新开始。 服务器上的版本是正确的。

我不想重新开始,我想用我的本地历史来解决我的巨大麻烦。 (如果必须,我可以。)

git fetch branchnamegit pull branchname不起作用。 我得到的消息是“最新的”,但是,我的本地版本与服务器的版本不匹配。

git pull origin/branchname给我一个“找不到”的错误。


首先,在当前位置创建一个新分支(以防您需要旧的'搞砸'历史记录):

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将分支头git reset为您与上游回购分支分支的最后一个分支。 使用git branch -v查找上游分支的sha1 id,并使用git reset SHA1ID它的分支。 那么你应该可以做一个git checkout来放弃它在目录中留下的变化。

注意:请务必在备份的回购站上执行此操作。 这样你可以保证你自己的工作是正确的。 或者,如果没有,则需要备份才能恢复。

链接地址: http://www.djcxy.com/p/26245.html

上一篇: Overwriting my local branch with remote branch

下一篇: Need to reset git branch to origin version