如何在没有冲突的情况下删除Git中的旧提交

时间:2017-10-10 14:05:27

标签: git

现在我有一个非常大的存储库,其中包含以下提交:

  1. 最新提交
  2. 很多提交
  3. 首次提交
  4. 我想要做的是将提交2和3压缩成一个。我尝试了交互式rebase,但是存在很多冲突,并且需要花费不合理的时间来修复它们。解决这些冲突没有任何意义,因为最终它们将成为一个提交。

    结果如下:

    1. 最新提交
    2. 初始提交(包括2和3)

2 个答案:

答案 0 :(得分:0)

我用移植物解决了这个问题。

使用移植物挤压

添加一个文件.git / info / grafts,把你希望成为你的root的提交哈希放在那里

git log现在将从该提交开始

使它'真实'运行git filter-branch

original answer

答案 1 :(得分:-1)

你是如何做一个互动的变基?

如果你正在处理挤压一个分支,你不应该有这样的冲突。

git rebase -i HEAD~3

然后在vim / editor

pick commit 3
pick commit 2
pick commit 1  

将其更改为

pick commit 3
squash commit 2
pick commit 1

3是最老的,1是最近的