用远程分支覆盖我的本地分支
我已经完全取消了我的本地分支,并且希望重新开始。 服务器上的版本是正确的。
我不想重新开始,我想用我的本地历史来解决我的巨大麻烦。 (如果必须,我可以。)
git fetch branchname
和git 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