删除完整的Git历史记录而不删除存储库?

时间:2011-03-16 10:46:59

标签: git github

我的问题可能看起来有点奇怪,因为我想要的通常只需删除存储库并创建一个新存储库即可。这就是为什么我仍然需要保留存储库的原因: 我的存储库的历史实际上是存储库中最有价值的部分。我用所有数据生成一个完整的存储库。存储库托管在github上,我想在那里更新存储库,以便像本地存储库一样完全(相同的历史记录)。

到目前为止,我发现执行此操作的唯一方法是在推送之前删除并重新创建github上的存储库。否则,所有旧提交仍将存在,从而有效地更改存储库的历史信息。 当然,在github上重建一个存储库是相当容易的,但是随着存储库,所有观察者,维基信息等都丢失了,我想要阻止它。

我发布了这里而不是github,因为我认为这个问题与Git相关而不是托管服务。

有什么想法吗?

2 个答案:

答案 0 :(得分:5)

git push origin +master之类的强制推送应该会有所帮助。所有远程更改都将丢失。

答案 1 :(得分:2)

步骤1:删除所有远程分支:

git fetch
git branch -r

对于每一行输出(它们应该看起来像origin/masterorigin/branch1,...),将其添加到git push行,如下所示:

git push origin :master :branch1 ...

第2步:推送您的本地分支

git push origin master branch1 ...