删除旧的提交,只保留最新的REMOTE提交

时间:2019-04-26 12:52:01

标签: git github gitlab git-bash

认为我在远程有50个提交,在创建合并请求之前,我想删除所有49个提交并保留我只推送的最后一个提交。 有办法吗?

1 个答案:

答案 0 :(得分:2)

我猜这50次提交在您的分支机构中。

我还假设您的分支基于父分支(例如master),在该父分支中请求将其合并(与合并请求一起使用)。

如果是这样,并且如果您希望这50次提交成为一次,则可以执行以下操作:

git rebase --interactive master # change master if it is not your base branch

在将打开的编辑器中,将2到50的提交标记为squash而不是pick,保存并退出,更新提交消息以包含所需的内容,您的提交将都挤成一个。

如果您希望提交1到49消失(包括它们的内容)并仅保留第50条),请在编辑器中运行git rebase --interactive master时删除所有您不想保留的最后一行提交,然后保存并退出。

最后,您将不得不用力更新遥控器:

git push --force

还请阅读以下内容的INTERACTIVE MODE部分:

man git-rebase