1

我有一个特定的目录,其中源代码在特定的提交中被修改0x0x0x0x0。在那次提交之后,许多其他的提交都在主节点上。

我想取消该提交0x0x0x0x0,并且此特定目录中的本地(而不是上游)在进行此提交之前具有代码。我可以为此运行哪些 git 命令?

稍后编辑:我只想取消那个特定的提交,而不是随后的更改。作为代码它不会影响我,因为它是一个独立的模块。此外,我不会使用这个本地存储库来进一步提交上游。

4

2 回答 2

5

如果您想回到引入提交之前,从而有效地删除其更改以及之后发生的所有更改(在其他提交中),您可以执行以下操作:

  • 签出旧版本的新分支,这样您就不会丢失任何信息,而是可以从旧状态重新启动:git checkout -b <newbranchname> commithash~1
  • 将当前分支重置为旧版本,如果没有其他分支指向它们,则有效地从历史记录中删除所有提交:git reset --hard commithash~1

但是,如果您只想撤消所述提交,同时保留之后所做的所有更改,您可以这样做:

git revert commithash
于 2013-02-26T15:03:05.597 回答
1

可以使用以下命令返回到任何提交:

git reset --hard commit_identifier

注意:获取提交标识符使用git log命令

您还可以使用以下命令重置上次提交:

git commit --amend

请查看下一个链接以获取更多信息:

http://www.kernel.org/pub/software/scm/git/docs/git-reset.html

于 2013-02-26T15:14:51.770 回答