[英]Remove an intermediate GIT commit
我有一个中间的git commit,现在我已将其合并到代码中。 它是错误地发生的。 我有2个选择:
我想对使用第二个选项提出建议,因为我没有安装插件的管理员权限。
提交1
提交2
我想保留提交1并删除提交2。提交2是目录,其中包含许多文件。
有什么建议么 ?
如果您想保留最新的提交,最好使用git rebase: http : //git-scm.com/docs/git-rebase
正常还原怎么办? 您要清除它的大小吗?
然后,您需要“ Force Push
访问权限[编辑:Gerrit中],这使您可以执行
git push --force
在您跳过该提交之后
git reset --hard HEAD^
请注意,与一组开发人员一起使用存储库时,应避免重写历史记录。
我想你在找
$ git reset --hard REF
此处REF
将是commit 1
SHA1
。
好的,所以您想摆脱一次提交。
如果尚未推出该提交,则可以使用以下命令将其本地删除
git reset --hard HEAD~
它会在当前版本之前签出修订。
您之前的历史记录: commit1--commit2
您的历史记录: commit1
如果您已经推送了提交,只要commit2
没有关键commit2
(巨大,密码等),最好将commit2
保留在历史记录中并还原提交而不是将其删除:
git revert <sha-of-commit2>
这将创建一个NEW提交,该提交将还原commit2
所做的commit2
。
您之前的历史记录: commit1--commit2
之后的历史记录: commit1--commit2--commit3
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.