2017-04-07 48 views
2

我的分支A在我的回购中有10个提交。我想要的是找到一种方法来删除所有提交,但保留当前分支中的所有更改(所以代码的状态将相同,但A中的所有提交都将消失)。目的是让我现在可以完成所有的更改,并且在我重新合并到主服务器之前,选择我想要的并且构造更好的提交消息。这种流动甚至可能吗?取消当前分支中的所有提交,但保留当前状态下的所有更改

回答

5

git reset master将更改HEAD并且索引与master的状态相同,但保持工作树不变(例如当前状态)。

1

压扁你的承诺作为一个单身单位可能会帮助你。 看一看here

1

git reset commit id会重置提交到指定的提交ID。在这种情况下,您可以从git log中找到以前的提交ID并恢复为提交ID。

+0

为什么在离开时使用'--hard'会做他想做的事,把所有的修改留在他的工作文件夹中? –

1

git reset --soft <commit-id>会做你所需要的。它会将HEAD移动到指向但不会改变工作树的状态(因此它将使您的文件保持独立)。使用log命令查找A开始的提交散列值。

查阅文件here如果你想知道更多关于reset的信息。

0

你必须压扁所有提交到一个和之后做重置。 看看this

相关问题