弄乱了本地git存储库 - 如何"恢复恢复"以再次匹配最后一次远程提交?

moz*_*ozz 2 git bitbucket

我在bitbucket上有一个远程git存储库(它是私有的,所以我不能在这里共享一个链接,我害怕)......我有几个分支,其中两个是:

  • cert_creation

昨天我在分支*cert_creation*,我做了一个

git add --all
git commit -m "changes blabla"
git push origin cert_creation
Run Code Online (Sandbox Code Playgroud)

......一切都很好.当我查看Bitbucket网站上的最新提交时,所有更改似乎都得到了保存.

但是,当我今天在我的本地计算机上打开一些文件时,我想,它们不是最新的.

所以我想将本地计算机上的所有更改恢复为最新的远程提交(我知道这是正确的).我用谷歌搜索将本地git存储库恢复到最新的远程提交.我使用了这些命令:

git reset HEAD --hard
git clean -fd
git fetch origin
git reset --hard origin/master
Run Code Online (Sandbox Code Playgroud)

(以及其他一些不起作用的人).现在的问题是,我已经搞砸了一切.现在我在我的本地机器上有一个非常古老的git提交(这是我最后一次将cert_creation合并到master).

现在的问题是如何"恢复恢复",即将我的本地git存储库更新为最后一次远程提交.可能这已经在互联网上的某个地方被问了100次,但我找不到正确的关键词:[]而且我已经搞砸了一些东西我真的很想确保做正确的事情.

非常感谢您的回答,我非常感谢您的帮助!

moz*_*ozz 5

好吧,我想出了现在该怎么做...在我的情况下,我想用bitbucket中的远程分支cert_creation完全覆盖本地分支cert_creation.

要做到这一点,我检查一下,我目前在哪个分支:

git branch
Run Code Online (Sandbox Code Playgroud)

当我目前在cert_creation中时,我必须离开它并去主人(或其他一些分支):

git checkout master
Run Code Online (Sandbox Code Playgroud)

现在我在本地删除乱搞分支:

 git branch -d cert_creation
Run Code Online (Sandbox Code Playgroud)

...获取有关正确远程分支的信息:

git fetch origin cert_creation
Run Code Online (Sandbox Code Playgroud)

...最后基于远程分支重建本地分支:

git checkout -b cert_creation origin/cert_creation 
Run Code Online (Sandbox Code Playgroud)

也非常感谢这个答案在堆栈溢出一些其他的问题,这让我摸不着头脑!