【问题标题】:Git reset origin/masterGit重置原点/主
【发布时间】:2019-04-24 13:34:40
【问题描述】:

我有两台服务器。一种用于开发,一种用于生产。两者都在 Gitlab 中。我一个人工作,现在我搞砸了我的 git 起源。

在开发服务器中:

  1. 我创建了一个新分支并通过提交进行了一些更改。没有推送
  2. 然后在同一个分支中,我通过另一个提交进行了一些其他更改。没有推送
  3. 最后在同一个分支中,我通过另一个提交进行了一些其他更改。

但是我犯了一个严重的错误。第三次提交后,我推送并与原点合并。这是错误的,因为我只希望最后一次提交与原点合并。其他都在测试。我虽然可以并行处理这些,但可能是我做错了。

现在,当我尝试在生产服务器中提取更改时,我得到了所有三个提交。

在生产服务器中,我有一个名为“右分支”的分支,一切正常。 我想要的是将此分支克隆到源主机并将源拉到开发服务器,以便我可以重新开始。 我该怎么做?

【问题讨论】:

标签: git ubuntu


【解决方案1】:

G. ,在我看来,您可以使用“git log”命令并​​检查分支上以前的提交。然后你可以使用'git reset --hard commitHeadId'复制提交头ID并回滚以前的版本(所有这些提交之前的版本)。然后您可以忽略以前的更改并使用本地历史记录仅添加第三次提交更改或与分支进行比较然后提交和推送。

【讨论】:

  • 我弄乱了我的 git,现在我被卡住了。我不知道该怎么办
【解决方案2】:

我设法在不丢失任何文件的情况下解决了这个问题。 首先在生产服务器上,在我运行良好的分支中:

git push origin--force

这用具有“好”文件且我需要的分支覆盖了我的起源。

然后在我的开发服务器中运行:

git 结帐大师

切换到master分支然后我运行:

git 拉

从源中提取所有新文件。 这给了我在开发中所需要的东西。在不丢失其他“测试”分支的情况下重新开始。

然后我又回到生产服务器修复本地主分支。 我跑

git 结帐大师

git 拉

这些也给了我一个新的“固定”主分支,就像以前一样。

现在我在 git master 分支中有两个相同的服务器,我可以继续在开发服务器中使用新分支,将它们合并到远程源,这样我就可以将它们拉到生产服务器主分支中。

【讨论】:

    猜你喜欢
    • 2021-06-11
    • 2015-12-24
    • 2017-08-07
    • 2012-07-28
    • 1970-01-01
    • 1970-01-01
    • 2020-10-11
    • 2014-10-11
    • 2016-07-28
    相关资源
    最近更新 更多