git恢复删除提交

git恢复删除提交,git,git-branch,git-log,git-revert,Git,Git Branch,Git Log,Git Revert,我对恢复推送提交感兴趣,但也希望将其从图表中删除。 例如,我有: tag A <— B <— C <— D <— E <— F HEAD 我该怎么做呢?试图重写历史是错误的 克隆/拉取它的人将很难集成您的更改,最终可能会推回您希望删除的更改 最好恢复提交,这将在历史记录中附加一个“负面”提交 git revert F 只要推一下就行了 git push origi

我对恢复推送提交感兴趣,但也希望将其从图表中删除。
例如,我有:

                   tag
A <— B <— C <— D <— E  <— F  
                          HEAD  

我该怎么做呢?

试图重写历史是错误的

克隆/拉取它的人将很难集成您的更改,最终可能会推回您希望删除的更改

最好恢复提交,这将在历史记录中附加一个“负面”提交

git revert F
只要推一下就行了

git push origin master

如果您知道自己在做什么或不在乎打破一切,您可以重写历史:

git reset --hard HEAD^
将索引移回父提交(E)


将新的分支引用推送到远程存储库,无论它是否快进。

git reset--硬头~1仅用于记录,此操作是一个历史重写操作。因此,如果您已经推送了提交,而其他人拉送了它,那么您现在推送——强制提交(您必须做的事情),您将破坏远程历史记录。
git reset --hard HEAD^
git push --force