我的回购中有一个分支A
,有10个提交。我想要的是找到一种删除所有提交的方法,但保留当前分支中的所有更改(因此代码的状态将相同,但A
中的所有提交都将消失)。目的是我现在可以检查所有的更改,并且在我合并回master之前,我可以选择我想要的并构造更好的提交消息。这种流动甚至可能吗?
答案 0 :(得分:5)
git reset master
会将HEAD
和索引更改为与master
相同的状态,但保持工作树不变(例如当前状态)。
答案 1 :(得分:1)
git reset commit id会将提交重置为指定的提交ID。在这种情况下,您可以从git log找到先前的commit id并恢复为该commit id。
答案 2 :(得分:1)
git reset --soft <commit-id>
会做你需要的。它会将HEAD移动到指向但不会改变工作树的状态(因此它将保留您的文件)。使用A
命令查找log
开头的提交哈希值。
如果您想了解有关reset
的更多信息,请查看文档here。
答案 3 :(得分:0)
将你的提交作为一个单一的单位拼凑在一起可能对你有所帮助。 看看here
答案 4 :(得分:0)
你必须将所有你的提交压缩成一个,然后重置。 看this