我需要删除最后两次提交,但还需要保存这些提交中的一些数据(一个文件夹)。并将其合并到我的第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命令