0

我做了一个意外的提交,这在历史上的任何地方都没有任何意义。我怎样才能从存在中删除这个提交(特别是我不希望它远程出现)。

在 magit-status 中,它显示:

Unpushed commits:
fe73b07 updated gitignore
974e70d test
ab333e6 trying to go with a flat structure

我能做些什么?

奖励:实际上,我只想保留此提交中的“更新的 gitignore”。

4

3 回答 3

1

指向测试,按下E开始变基。M-n两次交换提交。C-c C-c敲定。解决合并冲突(如果有)并完成。

于 2015-02-20T08:51:44.603 回答
0

这更像是一个 git 问题,而不是一个 emacs 或 magit 问题。如果我对您的理解正确,您想摆脱较旧的提交。解决此问题的一种方法是重新排序您的提交,而不是删除最后两个提交。第一个相当于在变基期间选择正确的提交,后者相当于使用正确的git reset. 我建议你看看这个关于重新排序提交的链接。此外,我会敦促您通过 git 逐步查看这个有用的修复部分

于 2015-02-20T10:15:14.990 回答
0

就像@abo-abo 所说,通过将点放在要删除的第一个提交上然后按E(在 Magit 的next版本ee.

出现一个新的类似日志的视图,每一行都以一个动作为前缀,最初是pick。然后按n移动到您要删除的第一个提交,和k,这将删除该行,意思是删除该提交。(这就是 ui 中发生的情况,当此信息稍后提供给 Git 时,该行实际上已被删除)。这也移动到下一行,在这种情况下是您要删除的另一个提交。于是再按k

现在您要删除的所有提交都被标记为这样,请按C-c C-c告诉 Git 让它发生。

于 2015-03-02T10:28:37.217 回答