将所有git提交转到单个提交并删除所有历史记录

时间:2015-08-28 12:10:19

标签: git

我发现自己总是在最初的GIT HUB提交中做出微小的改动。

此处的所有提交历史都是无用的。

通常我只是继续提交和删除回购并重新制作回购等。

我隐约意识到我可以将一堆提交转换为单个提交,但是当我将其推送到遥控器时,所有垃圾历史记录仍然存在吗?

有没有办法将一堆提交转换为第一次提交,然后粉碎那段历史记录。

2 个答案:

答案 0 :(得分:3)

要忘记到目前为止的历史,你可以开始一个新的孤儿分支:

git checkout --orphan new-start
git commit -a

在此之后,您可以使用

来指导这个新分支
git checkout master
git reset --hard new-start

请注意,此操作可能会丢失无法恢复的信息。

答案 1 :(得分:0)

  

此处的所有提交历史记录都是无用的

听起来像你正在使用分支来实现某个功能或执行错误修复,然后将此分支合并到master中,并且不希望在master中看到所有那些小提交而不是看到一个抛光的提交告诉你

var vehicles = document.querySelectorAll("ul#ulList > li.vehicle");
var ids = [].map.call(vehicles, function(elem) {
  return elem.id;  
});
console.log(ids);

要执行此操作,您可以在合并之前<ul id="ulList"> <li id="car" class="vehicle"> <li id="bus" class="vehicle"> <li id="cat" class="animal"> <li id="dog" class="animal"> <li id="bike" class="vehicle"> <li id="monkey" class="animal"> </ul>分支,并根据需要调整历史记录向主人执行Implemented feature a ,这将压缩您的所有提交你的分支是一个。

完成此操作后,将您的新主人推送到github并删除您的功能分支。