代码之家  ›  专栏  ›  技术社区  ›  Dan Rosenstark

在Git中重做提交历史记录而不使用REBASE

  •  21
  • Dan Rosenstark  · 技术社区  · 14 年前

    自从问我最后一个问题 which turned out to be about rebasing with GIT 我已经决定不想再贷款了。相反,我想:

    1. 分公司
    2. 工作,工作,随时登记和推送
    3. 抛开所有这些承诺,假装它们从未发生过(所以在工作结束时一次干净的承诺)

    我现在通过将文件复制到一个新目录,然后将它们复制回一个新的分支(与我的工作分支在同一点分支),然后将其合并到 master 或者在任何地方。

    这真的很糟糕吗?为什么?更重要的是:有没有更好的/git方法? git rebase -i 强制我合并(并拾取和挤压)。

    2 回复  |  直到 14 年前
        1
  •  10
  •   Ionuț G. Stan    14 年前

    您也可以使用 git merge --squash 选择权。

        2
  •  26
  •   CB Bailey    14 年前

    最简单的方法是软重置。

    所以,签出你的主题分支:

    git checkout -b topic master
    

    工作,工作,工作。

    git commit
    git commit
    git commit
    git commit
    

    很高兴,您可以在主服务器上进行新的单一提交

    git reset --soft master
    git commit
    

    现在合并到master(这将是一个快速前进)并整理主题分支。(请注意,如果您准备好记住或标记主控形状的位置,并且只在主控形状上工作而不进行分支,则无需执行此操作,您可以执行此操作。 git reset --soft old-master git commit 你不需要这些最后的清理步骤。)

    git checkout master
    git merge topic
    git branch -d topic