21

自从问了我最后一个关于使用 GIT变基的问题以来,我决定根本不想变基。相反,我想:

  1. 分支
  2. 工作工作工作,随时签到和推
  3. 扔掉所有这些提交并假装它们从未发生过(所以在工作结束时进行一次干净的提交)

我目前通过将文件复制到新目录然后将它们复制回新分支(与我的工作分支在同一点分支),然后将其合并到master任何位置来执行此操作。

这真的很糟糕吗?为什么?更重要的是:有没有更好的/GIT 方法来做到这一点? git rebase -i迫使我合并(并挑选和挤压)。

4

2 回答 2

25

最简单的方法是软复位。

所以检查你的主题分支:

git checkout -b topic master

工作工作工作。

git commit
git commit
git commit
git commit

对此感到满意,您可以在 master 之上进行新的单次提交

git reset --soft master
git commit

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

git checkout master
git merge topic
git branch -d topic
于 2010-02-23T18:46:32.287 回答
10

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

于 2010-05-10T11:40:48.570 回答