注册
登录
git/gitflow/gitlib
如何撤消Git中的最新本地提交?
返回
如何撤消Git中的最新本地提交?
作者:
狗头军师
发布时间:
2024-12-23 05:44:32 (27天前)
我不小心将错误的文件提交给Git,但尚未将提交推送到服务器。
如何撤消本地存储库中的那些提交?
收藏
举报
2 条回复
1#
回复此人
v-star*위위
|
2020-08-18 10-37
撤消提交并重做 $ git commit -m "Something terribly misguided" # (1) $ git reset HEAD~ # (2) << edit files as necessary >> # (3) $ git add ... # (4) $ git commit -c ORIG_HEAD # (5) 这是您要撤消的操作。 这不会对您的工作树(磁盘上文件的状态)产生任何影响,但是会撤消提交,并使您提交的更改未进行暂存(因此,它们将在中显示为“未暂存用于提交的更改”)git status,因此您需要在提交之前再次添加它们)。如果你只需要添加更多的变化上一次提交,或更改提交信息1,您可以使用git reset --soft HEAD~替代,这就好比是git reset HEAD~2,但离开你现有的变化上演。 对工作树文件进行更正。 git add 您想要包含在新提交中的任何内容。 提交更改,重新使用旧的提交消息。reset将旧头复制到.git/ORIG_HEAD; commit使用-c ORIG_HEAD会打开一个编辑器,该编辑器最初包含旧提交的日志消息,并允许您对其进行编辑。如果不需要编辑消息,则可以使用该-C选项。 但是请注意,如果您向索引添加了任何新更改,则使用commit --amend会将它们添加到先前的提交中。 如果代码已经推送到您的服务器,并且您有权覆盖历史记录(变基),则: git push origin master --force 您还可以查看以下答案: 如何将HEAD移回先前的位置?(独立的头部)和撤消提交 上面的答案将向您显示git reflog,您可以使用它来确定要还原到的提交的SHA-1。获得此值后,请按照上述说明使用命令序列。 1注意,但是,如果您在commit message中犯了一个错误,则无需重置为较早的提交。较简单的选项是git reset(取消对您自此以来所做的任何更改),然后选择git commit --amend,它将打开默认填充了最后一条提交消息的默认提交消息编辑器。 2 HEAD~与相同HEAD~1。另外,请参阅git中的HEAD是什么?。如果您要取消提交多个提交,这将很有帮助。
编辑
登录
后才能参与评论