我在bitbucket上有一个远程git存储库(它是私有的,所以我不能在这里共享链接,我很害怕)......我有几个分支,其中两个是:
昨天我在分支机构* cert_creation *并且我已经完成了
git add --all
git commit -m "changes blabla"
git push origin cert_creation
......一切都很好。当我查看Bitbucket网站上的最新提交时,所有更改似乎都已保存。
然而,当我今天在我的本地计算机上打开一些文件时,我想,它们并不是最新的。
所以我想将本地计算机上的所有更改还原为最新的远程提交(我知道这是正确的)。我用Google搜索将本地git存储库恢复为最新的远程提交。我使用了这些命令:
git reset HEAD --hard
git clean -fd
git fetch origin
git reset --hard origin/master
(以及其他一些不起作用的人)。现在的问题是,我已经搞砸了一切。现在我在我的本地机器上有一个非常古老的git提交(这是我最后一次将cert_creation合并到master)。
现在的问题是如何“恢复恢复”,即将我的本地git存储库更新到最后一次远程提交。可能这已经在互联网上的某个地方被问了100次,但我找不到正确的关键词:[]而且我已经搞砸了一些东西,我真的想确保做正确的事情。
非常感谢你提前回答,我非常感谢你的帮助!
答案 0 :(得分:5)
好吧,我想出了现在该怎么做...在我的情况下,我想用bitbucket中的远程分支cert_creation完全覆盖本地分支cert_creation。
为此,我检查一下我目前在哪个分行:
git branch
当我目前在cert_creation时,我必须离开它并去主人(或其他分支):
git checkout master
现在我在本地删除乱搞分支:
git branch -d cert_creation
...获取有关正确远程分支的信息:
git fetch origin cert_creation
...最后根据远程分支重建本地分支:
git checkout -b cert_creation origin/cert_creation
还要非常感谢this回答关于堆栈溢出的其他问题,这有助于我解决这个问题!
答案 1 :(得分:0)
要获取本地最新的遥控器,只需git pull
即可。 git reset --hard
将您的本地HEAD设置为特定提交并删除所有连续更改。因此,您需要从遥控器中删除更改。您已完成硬重置,因此您不必担心将本地更改合并到您的本地。
仅供参考:
revert是一个提交,它与之前的提交相反。您还没有进行恢复,因此您无需“还原恢复”。
的更新强> 的
从远程分支获取更新的问题是因为在将本地分支推送到origin
之后,您没有将本地分支设置为跟踪。为了推或拉,您需要指定要从/向推或拉的远程分支。为避免这种情况,您可以运行git branch -u origin/<branchname> <branchname>
。这会将您的本地分支设置为跟踪远程,您将能够毫无问题地执行git pull
。要查看跟踪分支,请运行git branch -vv
。这将显示分支名称以及分支正在跟踪的最新提交和远程分支(如果有)。