将我的git remote master分支还原为特定的提交

时间:2018-09-28 16:18:25

标签: git

过去2天的大部分时间里,我一直在进行研究,并尝试各种发现的事情,并且在尝试使用的每种方法时都会遇到问题。

我们无意中将一些打算用于将来版本的更改推入了master,现在又想恢复为与当前版本匹配的提交。

我们必须通过请求请求将代码交付给母版。

我尝试了各种方法,这些方法能够将本地计算机上的HEAD重置为所需的版本,但是随后我无法创建将合并到主服务器(或用于测试目的的副本)的请求请求。

我尝试还原自上一个好的版本以来的所有提交,但我遇到合并冲突。我确实不明白,肯定会沿着时间线倒退以前的文件版本。

我们团队中没有人会针对master进行开发,每个人都乐于将master恢复到正确的版本,因此不会有历史问题重置为正确的提交。

有没有简单的方法可以做到这一点?我正在考虑的黑客方式是:从所需的提交中复制所有文件,签出master_merge分支,删除所有文件,从良好的提交中复制文件,创建请求请求。某种程度上,这似乎不是一个好主意,但是我已经花了整整一天的时间来尝试解决这个问题,而且似乎可以完成工作。

任何想法都将不胜感激

谢谢

俄罗斯

2 个答案:

答案 0 :(得分:0)

我想您的问题答案更多是关于您的流程以及您想要实现的目标。

  • 您将母版留在原处,并为所需的提交创建标签,然后从那里拉出,以防您想要部署该版本。
  • 您可以从一个分支中挑选一个提交到另一个分支。这实际上将完成您在问题中提到的内容,但是您将保留所有其他已有的代码。
  • 您可以撤消提交。
  • 您可以区分两个代码,删除多余的一个,然后根据需要提交。如果您不介意丢失自回滚到该版本以来编写的代码。

不要觉得您选择的解决方案好不好,请考虑它是否能满足您的需求,是否可以在合理的时间安全完成,并让您保持流程顺畅。

答案 1 :(得分:0)

对于给定分支,您应该能够对上一个ID进行git push force。

假设您想将远程源上的母版“还原”为没有最后两次提交时的母版。

获取要启用的修订版本的sha1(例如,使用git log),然后强制将其推入

$(function(){ var sizes = []; $('.add-divider').each(function() { sizes.push($(this).outerHeight()); }).css('minHeight', Math.max(...sizes) ); });

这会将远程主服务器设置为没有最近两次提交时的状态。