问题主要在标题中说明。我的存储库之一包含许多从未真正更改过的二进制文件。但是,我更改了用于新文件扩展名/存储格式的格式。现在我的git历史中已有1000个左右的文件,这些文件都没有用(因为数据本身没有改变,只是存储格式)。由于它们都是相同的扩展名,因此我认为这是清除它们的简便方法,但我不知道如何。
答案 0 :(得分:0)
我仍然不确定我是否正确理解了您的问题。您不应该从git历史记录中删除任何内容。即使是
从技术上讲,这通常不是一个好习惯,尤其是如果
您已经将分支推送到远程存储库并共享了
与他人,因为它修改了其他用户可能提交的SHA-1提交
已经拉。您现在要做的就是删除所有
给定扩展名的文件,在此示例中为.x
:
$ git rm "*.x"
rm 'a/a.x'
rm 'b/c/d/e/g/another.x'
rm 'c.x'
它将删除所有以*.x
结尾的跟踪文件,并将它们添加到暂存区域:
$ git diff --cached
diff --git a/a/a.x b/a/a.x
deleted file mode 100644
index e69de29..0000000
diff --git a/b/c/d/e/g/another.x b/b/c/d/e/g/another.x
deleted file mode 100644
index e69de29..0000000
diff --git a/c.x b/c.x
deleted file mode 100644
index e69de29..0000000
您只需要提交它们即可。
请注意,您必须将*.x
用双引号引起来,因为shell会
在运行git命令之前先展开*
。