2017-04-07 44 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

相關問題