如何在不删除更改的情况下删除远程提交

时间:2020-03-20 12:16:44

标签: git github gitlab

我不小心添加了一个使用错误用户名的提交,并将其推送到远程。现在,我想删除该特定的提交,但我想保留更改。

有没有办法做到这一点?我尝试了git reset,但这意味着我将丢失所做的更改。有没有办法压缩提交?

1 个答案:

答案 0 :(得分:1)

使用git可以将先前的提交压缩为一个。我建议您添加另一个提交。然后使用您添加的最后一个提交,以错误的用户来压缩提交。

假设您从git log --oneline -2获得了以下提交。

  • xf71a11-最后一次提交
  • 1a9ddqw-使用错误的用户完成提交

要压缩错误用户完成的提交,您应该使用git命令:

git rebase -i HEAD~2

它将打开以下内容的编辑器:

pick xf71a11 - last commit

pick 1a9ddqw - commit done with the wrong user

像这样更改它:

pick xf71a11 - last commit

squash 1a9ddqw - commit done with the wrong user

非常重要:请记住,此操作会修改提交的历史记录。可能会导致在您进行更改之前提取提交历史记录的开发人员之间的git历史记录不一致。