首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >删除/取消对Sourcetree的合并

删除/取消对Sourcetree的合并
EN

Stack Overflow用户
提问于 2014-03-20 15:06:16
回答 3查看 92.7K关注 0票数 64

我在我的项目中做了相当少的更改(我是在一个远程分支上工作,而不是在主程序上),我提交了它们,并在BitBucket上创建了一个拉请求,并将分支合并到Master中。我忘了在承诺之后推动我的改变。现在,在尝试将当前分支切换到我的远程分支并在合并之前恢复到提交之后,我成功地将所有更改返回并备份到系统的其他地方。我现在要做的是撤销我所做的错误合并。每次单击合并并选择“反向提交”时,都会收到以下错误消息:

“错误:提交是一个合并,但没有提供-m选项。 致命:还原失败“

现在的树枝看起来是这样的:

我想要删除合并,并将它带到一个状态,这样它就不再说master(4 behind)了。

EN

回答 3

Stack Overflow用户

发布于 2020-06-02 19:07:49

一步一步地走:

恢复合并提交

Master被合并并以冲突/不需要的代码进行开发。

使用Sourcetree:还原

  1. 选择“开发”,选择必须还原到哪个分支的最后一个提交。
  2. 右键单击该分支并选择“Reset develop to this commit”
  3. 从弹出窗口中选择hard,从左侧底部下拉。Its .

此后不应该有拉力。如果发生任何拉断,请按以下方式使用终端进行还原。

现在将母版合并到Development.中。

使用终端恢复:

  1. 选择“开发”,选择必须还原到哪个分支的最后一个提交。
  2. 开式航站楼
  3. git reset --hard <commit_before_merge id long one>
  4. 如果源树中出现任何拉计数,则键入git push -f,并its .

将母版合并为.

票数 2
EN

Stack Overflow用户

发布于 2019-01-10 12:19:18

我找到了另一种不用命令行的方法,有点难看,但我做了这件事。

因此,对要回滚的提交进行硬重置,转到项目文件夹(在Mac上使用Finder,在Windows上使用Explorer ),并复制整个文件夹。您在这个“复制”文件夹中所拥有的是您希望在此过程结束时的位置。

好吧..。返回到源树,然后签出头(最新提交到远程),然后再次导航到项目文件夹,确保您可以看到隐藏的文件夹,因为您必须能够看到一个名为".git“的文件夹。

从当前项目中删除除".git“之外的所有内容,这意味着当前项目除了名为".git”的文件夹外,没有其他任何内容,然后导航到‘复制’文件夹,复制除".git“文件夹之外的所有内容,并粘贴当前项目中的内容(只有".git”文件夹)。

好了。转到源树并提交更改,您的项目正是您想要的位置,并且删除了所有更改。

结束了。

Obs1:现在删除“复制”文件夹,从脏文件中清除您的pc。

Obs2:这个过程不会从Git中删除您的更改,提交将出现,您要做的是删除并提交更改。

票数 1
EN

Stack Overflow用户

发布于 2021-10-08 15:34:50

无损法

我遇到了一种情况,那就是我以前的解决方案不是一个选择。我无法强迫自己去掌握,即使我能做到,这对其他的开发人员来说也太具有破坏性了。

我发现了这个新的方法,它100%地保留了git历史,并且对团队中的其他开发人员来说是完全没有破坏性的。

  1. 在错误的合并之前创建一个新分支只需
  2. Cherry-选择错误的合并提交到这个新分支(这会将合并转换为正常提交)
  3. 还原樱桃选择提交
  4. 将新分支合并为主程序

就这样!

(您可以通过右键单击git历史记录中的提交并从上下文敏感菜单中选择选项来执行大多数这些操作)

更新:步骤4没有显示任何更改?

如果发生这种情况:

  • 如果你可以直接提交给主人,樱桃选择还原提交直接到主人。
  • 如果不能直接提交给master,则从master创建一个新的分支,然后选择将revert提交到该分支,然后将该新分支合并到master中。
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22537097

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档