我有一个特定的目录,其中源代码在特定的提交中被修改0x0x0x0x0
。在那次提交之后,许多其他的提交都在主节点上。
我想取消该提交0x0x0x0x0
,并且此特定目录中的本地(而不是上游)在进行此提交之前具有代码。我可以为此运行哪些 git 命令?
稍后编辑:我只想取消那个特定的提交,而不是随后的更改。作为代码它不会影响我,因为它是一个独立的模块。此外,我不会使用这个本地存储库来进一步提交上游。
如果您想回到引入提交之前,从而有效地删除其更改以及之后发生的所有更改(在其他提交中),您可以执行以下操作:
git checkout -b <newbranchname> commithash~1
git reset --hard commithash~1
但是,如果您只想撤消所述提交,同时保留之后所做的所有更改,您可以这样做:
git revert commithash
可以使用以下命令返回到任何提交:
git reset --hard commit_identifier
注意:获取提交标识符使用git log
命令
您还可以使用以下命令重置上次提交:
git commit --amend
请查看下一个链接以获取更多信息:
http://www.kernel.org/pub/software/scm/git/docs/git-reset.html