我有两台服务器。一种用于开发,另一种用于生产。两者都在Gitlab中。我一个人工作,现在弄乱了我的git来源。
在开发服务器中:
但是我犯了一个严重的错误。第三次提交后,我推送并与原点合并。这是错误的,因为我只希望最后一次提交与origin合并。所有其他都在测试。虽然我可以并行处理这些,但可能是用错误的方式完成的。
现在,当我在生产服务器中尝试进行更改时,我将获得所有三个提交。
在生产服务器中,我有一个名为“右分支”的分支,一切正常。 我想要的是将此分支克隆到原始主机,并将原始拉到开发服务器,以便我可以再次开始。 我该怎么办?
答案 0 :(得分:0)
G。 ,我认为您可以使用'git log'命令并检查分支上的先前提交。然后,您可以复制提交头ID并使用'git reset --hard commitHeadId'回滚先前的版本(所有这些提交之前的版本)。然后,您可以忽略先前的更改,并使用本地历史记录仅添加第三次提交更改,或者与分支进行比较,然后提交并推送。
答案 1 :(得分:0)
我设法解决了这个问题,而没有丢失任何文件。 首先在生产服务器上,可以在分支中运行:
git push origin --force
这用具有“好”文件的分支覆盖了我的起源,而我需要。
然后在我的开发服务器中运行:
git checkout master
切换到主分支,然后运行:
git pull
从源中提取所有新文件。 这给了我开发所需的东西。一个全新的开始,而不会失去其他“测试”分支。
然后,我又回到生产服务器来修复本地master分支。 我跑
git checkout master
git pull
这些也像以前一样给了我一个新的“固定”主分支。
现在我在git master分支中拥有两个相同的服务器,并且我可以继续使用开发服务器中的新分支,将它们合并到远程源,以便可以将它们拉入生产服务器master分支中。