【发布时间】:2014-06-17 06:46:06
【问题描述】:
我使用错误的凭据提交了某些内容,有没有办法可以从 git 历史记录中删除该提交。我在 eclipse 中使用 egit 插件。
【问题讨论】:
我使用错误的凭据提交了某些内容,有没有办法可以从 git 历史记录中删除该提交。我在 eclipse 中使用 egit 插件。
【问题讨论】:
技术上是的,但不确定你是否想这样做。思考利弊,尤其是改变推送历史的大弊:
尚未推送/仅本地更改
控制台只需执行以下操作之一:
git rebase -i <commit before the one you want to remove>:将在文本编辑器中打开一个包含提交列表的文件。删除您想要摆脱的提交。保存并退出。 Git 将在没有该提交的情况下重建历史记录(并可能出现一些冲突)。
git reset --soft <the commit you want to remove>:如果您不介意更改其余历史记录并重新提交,请使用此选项。这样不会有冲突,但只有在历史较短的情况下才可行。
更改远程分支
好吧,之前列出的任何解决方案,但是当您推送时,您必须指定 -f 选项,这非常糟糕 :nucleardawn: !您将更改其他人可能依赖的提交历史记录,这可能会彻底破坏他们的工作。
仅当您确定暂时没有人获取远程分支或您独自工作时才执行此操作。
希望这会有所帮助。
【讨论】: