如何删除所有可推送的提交?

时间:2012-02-23 14:08:41

标签: git

我尝试使用git filter-branch删除一些大文件。这不是一个好主意,因为它重写历史并创建一个新的分支,使所有提交加倍。

现在我要重做这个。我在SmartGit(一个git图形界面)中看到它创建了许多可推送的提交。如何删除它并撤消所有这些提交?

我将不得不使用SHA ID逐个删除?

2 个答案:

答案 0 :(得分:3)

如果您尚未推送它们,则可以执行git reset --hard HEAD~X,其中X是提交次数。

答案 1 :(得分:0)

git filter-branch将在.git/refs/original/目录中创建未写入引用的备份副本。 将这些引用移动到以前的位置(.git/refs/heads/)可能会很幸运 - 请务必先备份complte存储库;)

这样你就不必分别重置每个分支头了。