【问题标题】:Git: deleting the two first commits (with no history)Git:删除前两个提交(没有历史记录)
【发布时间】:2015-07-24 18:38:31
【问题描述】:

我已经找到了关于 revert what will make a new commit 的答案,这对我不起作用(也许我需要更清楚的解释)但后来我发现这不会删除提交本身/历史记录(我想要什么去做)。 然后我有了一个可行的想法:

  1. 在提交 3 处创建一个分支(记住我只想先删除 第二次提交)
  2. 使那个分支成为主人
  3. 删除包含我要删除的 2 个提交的分支

不知道这是否可行。但我希望你能帮助我

【问题讨论】:

    标签: git commit revert


    【解决方案1】:

    你可以做几件事:

    1. 如果您推送您的分支并且您的“服务器”配置为阻止非快进提交,您实际上无法删除已删除的提交,您将不得不使用问题中提到的恢复。
    2. 如果您可以推送,则可以执行 push -f,这将“强制”推送并将您的提交从历史记录中删除。

    如何删除不需要的提交:

    1. git reflog 将显示您的 git 历史列表,签出所需的提交(就像您说的 3 次提交),创建分支并推送它(使用 -f 标志)。它将删除不需要的提交。
    2. 如果您无法推送它(阅读上面的原因),您可以恢复提交并删除不需要的代码,然后推送新的“已删除”代码。

    【讨论】:

    • 首先感谢您的回复。可悲的是,我不知道它是否配置为阻止非快进提交,我是如何知道的?
    • 试试 git push -f。如果它不起作用,您将被阻止
    • 所以我要做的只是 git push -f 11aa11
    • 但是仅仅使用 revert 是不行的,我想删除提交而不仅仅是代码
    猜你喜欢
    • 2016-03-13
    • 2014-11-20
    • 1970-01-01
    • 2012-04-06
    • 1970-01-01
    • 1970-01-01
    • 2014-05-05
    • 2013-08-03
    • 2012-04-04
    相关资源
    最近更新 更多