问题标签 [git-revert]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
704 浏览

git - 在任何提交之前将主分支移动到原始状态

如果这个问题已经被问及回答,我很抱歉,但我找不到它。

基本上,我没有创建一个分支,而是在主分支中实现了一个应用程序的 alpha 版本,并在旧应用程序的分叉版本的顶部提交了几次。

是否可以将主分支恢复到其原始状态?

0 投票
4 回答
25850 浏览

git - 在 Git 中恢复一系列推送的合并和提交(不重写历史记录)

语境

我的一个队友错误地将一些提交推送到我们的主要开发分支。我们是一个小型的、并置的团队。我们的远程存储库托管在内部服务器上。

这是我们提交日志的顶部(所有这些提交都已被推送):

da8b496是我们想要保留在develop分支中的最后一个提交,所以我们需要恢复最后的 5 个提交。我们创建了一个新分支,8c29252以继续在“功能分支”中工作。

在这个答案Linus 的这篇文章的指导下,我尝试了很多事情,最终做了你在下面的终端历史记录中看到的事情。但我不确定我最终做的是否是“正确的方式”。我发现的信息很复杂;对于这个特定问题,我无法辨别出“最佳解决方案”。

问题

我选择的方法(见下文)是恢复这 5 次提交而不损害我们历史的好方法吗?有没有更简单或更“正确”的方法来完成同样的事情?

除其他外,我考虑从da8b496( git checkout -b new-develop da8b496) 创建一个新分支并放弃我们当前的develop分支,但这感觉不对。


我最终做了什么(细节)

首先,我为提交创建了一个新分支a78b9938c29252因为这些提交包含我们想要保留并最终合并回我们的主要开发分支的工作。

然后我开始在我们的开发分支中恢复有问题的提交。

我首先尝试了这个,但是没有用(可能是因为某些提交是合并的):

所以……我改为手动还原每个提交;逐个:

完成所有还原后提交日志:

还原后的图表:

对我来说似乎是正确的。最后,我删除了一些我不想保留的备份文件:

当前状态是干净的:

然后我将所有内容推回遥控器:

0 投票
1 回答
60 浏览

git - 如何围绕失败的合并分叉两个git分支

目前,我的 git 存储库中有以下情况。

分支“branch-1”已在一段时间前从 master 分叉(参见提交 5)。

在提交 0 时,我想将其合并回 master,但是在提交 1 和 3 之间在 master 中发生的所有更改都被覆盖了。有效地创造

由于我的同事无法在此状态下继续他们的工作,我已恢复合并提交。因此,我确实将 HEAD 设置为与 1 相同。使用的命令将是“git revert -m 2 0”。

但现在我希望我的更改再次合并。这一次,我希望它会成功。我需要创建类似的东西:

这将是一个新的提交 -1,它避免了失败的合并 0 并返回到我在合并之前拥有的干净状态(我通过恢复获得的干净状态)。

然而,仅仅试图将 2 合并到 HEAD 是行不通的。我认为这是因为它们已经在 0 处合并。

0 投票
4 回答
3696 浏览

git - 一种在单个提交中恢复整个分支的方法

我需要用这样的一次提交来恢复整个分支:

提交X必须具有像master~2(主题分支的起点)这样的状态

我的解决方案是:

有没有更好(更短)的解决方案?

目的

想象一下,我有一种几乎基于 git-flow 的 repo。

我有一个development分支,即将到来release-3的分支和一个所谓的hot-fix-feature-for-rc-3分支。在这个分支中,我正在做一些丑陋的黑客来完成我的发布,但我根本不想要它,development因为更多“正确”的解决方案已经在这里登陆,但由于某种原因不能应用于release-3分支。所以,我必须做以下事情......

我必须合并fix-for-rc-3到一个release-3(点 M),然后做一个“revert-all-this-shit”提交(点 X)并合并它development(点 D)所以这段代码永远不会到达这里,即使整个release-3分支被合并development然后释放完成。

这就是为什么我需要恢复整个分支......

问题

虽然解决了根本问题,但如果topic已经合并到分支,则仍然存在获取分支点的问题release merge-base

0 投票
1 回答
1397 浏览

git - github - 提交不合并我的更改

我已经提交了我的更改并将它们推送到远程 git 存储库。但是,当我将其他更改拉到我的主分支时,它合并了我的存储库并且我没有旧的更改。我合并的拉取请求有问题。现在我想去我所做的稳定提交。根据这个 git log,我想回到“最终集成”提交。

这是 git 日志:

提交 dc1276f241db392eb7785a655d6493c7cbdf712e 合并:0dd1453 e3281ec 作者:mehulkaklotar 日期:Fri Nov 1 04:01:27 2013 +0530

提交 0dd14530bbbde1b4c7f00f4add96c2957ac9e373 作者:mehulkaklotar 日期:Fri Nov 1 03:53:40 2013 +0530

提交 5a3d6e8f3b2f257c46d43352f190c14dcd98b5fc 作者:mehulkaklotar 日期:Fri Nov 1 02:42:01 2013 +0530

提交 e3281ece42ef5d049dc3f0958c7e611956183b84 作者:vshukla8991 日期:2013 年 10 月 31 日星期四 08:23:42 +0530

提交 df8d19a478b11c6631e1b4dd8b5acef00dff7499 作者:vshukla8991 日期:2013 年 10 月 30 日星期三 15:53:43 +0530

0 投票
6 回答
3228 浏览

git - 在合并期间忽略还原的更改

我的提交树描述如下:

master中的一些更改已恢复。我们需要将分支中的更改合并到恢复恢复提交。

是否存在一步法?或者在合并分支之前只有一种方法是cherry-pick (B) 来掌握

PS最终大师必须看起来像:(ABCDE) - 顺序并不重要

0 投票
1 回答
3528 浏览

git - git revert 几个特定的​​提交

问题:一个分支有很好的提交与不希望的提交交错。

尝试的解决方案:

我认为这样做会应用所有指定的提交,然后让我解决任何冲突。

我现在认为会发生什么:

  • git 在引入大冲突的过程中应用 commit hash5。
  • 我尝试合并,编辑我想要的代码,为更多冲突做好准备(见下一点)
  • git 应用提交 hash8,这与合并中所做的编辑冲突
  • 我尝试合并...等等

问题:在向我提出任何可能的冲突之前,如何让 git 连续应用所有还原?

0 投票
2 回答
67460 浏览

git - 从 git 恢复特定的提交

我有一个 git 树,里面有很多提交和很多文件。现在,我想恢复仅涉及文件的特定提交。解释:

现在我想只恢复两个提交b49eb81d8b06而不将更改恢复为 a。IOW 仅还原文件中的提交(不还原不同文件中的其他中间提交(可能有数千个))这怎么可能?

0 投票
1 回答
62 浏览

git - Git恢复后如何合并分支

到目前为止的故事 - 项目存储库有两个分支 -updatemaster. 曾尝试合并updatemaster. 但几乎立即master通过使用恢复到原来的形式(合并前)revert

所以 - 我们有两个分支。其中有单独的内容。我怎样才能merge分支 master 和 update 一起?所以分支大师持有组合结果?你能帮我解决这个问题吗?

0 投票
1 回答
761 浏览

git - 如何将包含还原提交的主合并到分支

我有初始状态的主分支:

然后我做了一些改变:

它确实属于一个特性分支,所以我分支了:

并恢复了主人的变化(我不知道这是否是最好的方法,但它做了当时需要的):

然后我在功能分支上做了一些更改:

现在我在将 master 合并到它时遇到问题。我想要的是能够将 master 中的所有未来更改合并到 TEST 分支并保留我的功能分支更改。

代码已经推送到遥控器。