![](/img/trans.png)
[英]How can I go go back to my master branch without losing all previous commits?
[英]How to go back to the previous master branch
首先,不要惊慌!
接下来,要求其他人不要推或拉,直到您推入的回购变得整洁。 如果转到该特定机器,则可以使用git reflog
查看发生此情况之前的位置。 如果其他同事没有拉入凌乱的版本,则他们的回购中可能还会有该远程回购的master分支的副本。 使用任何一种方法来查找上一次明智提交的哈希。
如果远程服务器是常规仓库,而不是无头仓库,那么您可以简单地使用git checkout master
来确保您位于master分支上,然后git reset [last known good commit hash] --hard
很难将其设置回原来的状态是。 这只是假装自该提交以来没有发生任何事情。 如果您不确定自己在做什么,这种事情可能很危险,因此请确保先进行备份!
现在该存储库再次干净,其他所有人都可以从中取出并再次推送到它。
接下来是做出有问题的承诺的人。 他们可以做同样的事情: git checkout master
转到其master分支的本地副本,然后git reset [last known good commit hash that they've already pulled in] --hard
引入的git reset [last known good commit hash that they've already pulled in] --hard
很难将其移回原来的位置,然后git pull [remote server name] master
进行后续更改。
然后,他们将不得不再次合并他们的更改。
要记住的关键点是:
git reflog
告诉您已检查的内容,这对于消除错误很有用 git reset [hash] --hard
假装没有发生任何事情。 将来,如果您需要强制执行某些操作,请考虑是否需要先执行一些操作。 如果您要与Git对抗,那通常就是您忽略了某些东西的迹象。
由于您是一个团队,因此您的团队成员中有一个在其本地系统中拥有旧master
的机会。 只需从该系统强制推送即可恢复您的远程Git存储库。
然后回到创建最近提交的团队成员,将旧的master
拖入他的系统,解决冲突(如果有的话),然后像往常一样推送。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.