删除最后2次提交而不删除所有数据

时间:2016-04-08 10:46:31

标签: git

我需要删除最后两次提交,但还需要保存这些提交中的一些数据(一个文件夹)。并将其合并到我的第3次提交中。 我怎么能这样做?

3 个答案:

答案 0 :(得分:2)

您可以使用

重置为两次提交
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="first">
  <input class="input-text qty text" type="number" readonly="" value="200">
  <button>
    Hide me
  </button>
</div>

<div class="second">
  <input class="input-text qty text" type="number" readonly="" value="300">
  <button>
    Hide me
  </button>
</div>

<div class="third">
  <input class="input-text qty text" type="number" readonly="" value="400">
  <button>
    Hide me
  </button>
</div>

这将重置分支,但保留这两个提交的所有更改。然后只需添加并提交您需要保存的内容

git reset --mixed HEAD~2

答案 1 :(得分:2)

只需停止以“删除提交”的方式考虑它。我会说:

记下当前的提交ID:

git log |head -n1 

返回两个提交,

git checkout HEAD~2

然后只检查你的目录

git checkout <noted ID> -- yourdirectory/

并提交结果:

git commit -m "kept the future of yourdirectory/" yourdirectory

如果你真的想干涉现有的提交,请使用

git rebase -i HEAD~10

压制这两个提交。

如果你真的想(你不需要),你可以git prune稍后提出悬挂提交。

答案 2 :(得分:0)

git rebase -i HEAD~2允许您编辑之前的3次提交。

您可能希望在交互式shell上应用squash命令