5

我之前通过创建一个克隆并在克隆中执行 rebase 来完成此操作,但我怀疑我可以在单独的分支上安全地执行此操作。

我有一个功能分支feat-x,上面有大约 25 个提交。我想(安全地)将其中的几个压缩在一起。

(我说“安全”是因为前几次我压扁的时候我没有把它弄好——但是在克隆中工作,所以把它扔掉,直到我想出正确的咒语。)

什么样的命令序列会给我feat-x-exp一个副本,feat-x这样我就可以在不干扰的情况下尝试挤压feat-x

4

1 回答 1

7

我想你只想做:

git checkout -b feat-x-exp feat-x

这将检查feat-x您可以试验的副本。一旦你离开了feat-x分支,你的 rebase 命令不会影响原始分支(只要你避免使用两个参数形式,这是在 rebase 之前签出的快捷方式)。

如果你搞砸了,你可以回到原来分支的状态:

git reset --hard feat-x

如果您的实验成功,您可以移动feat-x以匹配feat-x-exp并删除实验分支:

git checkout feat-x
git reset --hard feat-x-exp
git branch -d feat-x-exp
于 2010-07-29T18:38:41.583 回答