繁体   English   中英

如何返回上一个主分支

[英]How to go back to the previous master branch

我对git有严重的问题。 我的一个团队成员决定在执行git pull命令之前不进行Git提交,因此主控头在后面,所以我决定进行git push --force。 现在,git分支都被弄乱了,我不知道如何更改它。 我已附上屏幕截图,以显示我在说什么。

在此处输入图片说明

首先,不要惊慌!

接下来,要求其他人不要推或拉,直到您推入的回购变得整洁。 如果转到该特定机器,则可以使用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实质上重写历史记录
  • git reflog告诉您已检查的内容,这对于消除错误很有用
  • git reset [hash] --hard假装没有发生任何事情。

将来,如果您需要强制执行某些操作,请考虑是否需要先执行一些操作。 如果您要与Git对抗,那通常就是您忽略了某些东西的迹象。

由于您是一个团队,因此您的团队成员中有一个在其本地系统中拥有旧master的机会。 只需从该系统强制推送即可恢复您的远程Git存储库。

然后回到创建最近提交的团队成员,将旧的master拖入他的系统,解决冲突(如果有的话),然后像往常一样推送。

对您而言,最简单的方法是使用master分支进行一次提交,该操作类似于:

git revert HEAD~1

还要检查此处给出的答案,以获取不同还原提交的详细说明。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM