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