如何撤消选定的提交

Posted

技术标签:

【中文标题】如何撤消选定的提交【英文标题】:How to undo on selected commit 【发布时间】:2016-12-06 09:51:09 【问题描述】:

我想撤消选定的提交。因为我的团队推送不同的许多文件和许多提交。

我所做的是提取已删除的文件。现在我的文件也不见了。

我试过了

git rebase -i 4dd0c29
git reset --hard undo

但什么都没有改变

【问题讨论】:

检查这个:***.com/questions/20324638/…***.com/questions/2938301/remove-specific-commit更多:git-tower.com/learn/git/faq/restore-repo-to-previous-revision 阅读本文,它将解释如何做到这一点。 ***.com/questions/34519665/… 【参考方案1】:

在项目的主 git 目录中使用命令 git log 来获取最近的提交。最近的提交将首先显示。它还将以长格式记录提交号。例如:

commit ed7cec151e25ea7f9e0d0563598ee9afd3170952
Author: xxx <xxx@email.com>
Date:   Thu Jul 28 17:25:51 2016 +0500

然后使用您的提交 ID 硬重置所有更改:

git reset --hard ed7cec151e25ea7f9e0d0563598ee9afd3170952

希望对你有帮助。

【讨论】:

【参考方案2】:

要恢复特定的提交,请使用git revert &lt;commit&gt;

这将创建一个新的提交,其中&lt;commit&gt; 的内容已被还原。

【讨论】:

它给了我这个错误Your branch is up-to-date with 'origin/master'. nothing to commit, working directory clean【参考方案3】:

使用git reflog,它将为您提供一个列表,其中包含更改HEAD 的活动日志。找到HEAD@id(其中id是一个数字),它表示在git pull之前的头部,然后执行git reset --hard HEAD@id(确保将单词id替换为HEAD的数字)

或者,您可以执行git reset --hard HEAD^,这会将您的HEAD 恢复到git pull 之前的状态。

【讨论】:

在哪里可以找到id 运行git reflog id 的形式为HEAD@number

以上是关于如何撤消选定的提交的主要内容,如果未能解决你的问题,请参考以下文章

如何撤消多个 git 提交? [复制]

如何撤消 Git 中最近的本地提交?

如何撤消合并请求及其提交?

如果未提交,如何撤消“丢弃”

如何在提交之前撤消“git add”?

如何撤消两次提交之间的更改?