我尝试使用git filter-branch
删除一些大文件。这不是一个好主意,因为它重写历史并创建一个新的分支,使所有提交加倍。
现在我要重做这个。我在SmartGit(一个git图形界面)中看到它创建了许多可推送的提交。如何删除它并撤消所有这些提交?
我将不得不使用SHA ID逐个删除?
答案 0 :(得分:3)
如果您尚未推送它们,则可以执行git reset --hard HEAD~X
,其中X是提交次数。
答案 1 :(得分:0)
git filter-branch
将在.git/refs/original/
目录中创建未写入引用的备份副本。
将这些引用移动到以前的位置(.git/refs/heads/
)可能会很幸运 - 请务必先备份complte存储库;)
这样你就不必分别重置每个分支头了。