2

假设我有一个包含以下提交的仓库(git 版本 1.7.1)

A -> B -> C -> D ->E 我的头是开着的E。现在我想删除 C,同时保持一切都一样 A -> B -> D -> E

你能帮我怎么做吗?

4

1 回答 1

5

您可以使用git rebase -i B. 但是请注意,这DE将被重写(获得不同的提交 SHA),因此结果将是A -> B -> D' -> E'. 的内容E'应该等同于(减去您现在丢弃E的更改),但 ID 会有所不同。C这就是为什么你到处都发现关于重新提交已经推送并可能被其他人用作新工作基础的警告的原因。您正在重写历史,这将在其他存储库中引起混乱,除非他们期待它。但是,如果这是一个私有存储库,或者您还没有推送,那么您应该可以重新安排提交。

于 2012-10-10T14:52:31.480 回答