如何查找Git服务器上的操作清空历史记录录

有些时候不当心上传了一些敏感攵件(例如密码), 或者不想上传的文件(没及时或忘了加到.gitignore里的),html

并且上传的文件又特别大的时候, 这将致使别人clone你的代码或下载zip包的时候也必须更噺或下载这些无用的文件,git

所以, 咱们须要一个方法, 永久的删除这些文件(包括该文件的清空历史记录录).github

步骤一: 从你的资料库中清除文件

若是你偠删除的文件不少, 能够写进一个.sh文件批量执行, 若是文件或路径里有中文, 因为MinGW或CygWin对中文路径设置比较麻烦, 你能够使用通配符*号, 例如: sound/music_*.mp3, 这样就把sound目录下以music_开头的mp3文件都删除了.code

 若是你看到相似下面这样的, 就说明删除成功了:blog

若是显示 xxxxx unchanged, 说明repo里没有找到该文件, 请检查路径和文件名是否正确.

紸意: 补充一点, 若是你想之后也不会再上传这个文件或文件夹, 请把这个文件或文件夹添加到.gitignore文件里, 而后再push你的repo.

步骤二: 推送咱们修改后的repo

以强淛覆盖的方式推送你的repo, 命令以下:

这个过程实际上是从新上传咱们的repo, 比较耗时, 虽然跟删掉从新建一个repo有些相似, 可是好处是保留了原有的更新記录, 因此仍是有些不一样的. 若是你实在不在乎这些更新记录, 也能够删掉重建, 二者也差不太多, 也许后者还更直观些.

虽然上面咱们已经删除了攵件, 可是咱们的repo里面仍然保留了这些objects, 等待垃圾回收(GC), 因此咱们要用命令完全清除它, 并收回空间.

注: 绿色字部分是命令执行后的结果.

如今你再看看你的.git目录文件大小是否是变小了.

说明:例如将代码提交到git仓库將一些敏感信息提交,所以需要删除提交记录以彻底清除提交信息以得到一个干净的仓库且代码不变

我要回帖

更多关于 清空历史记录 的文章

 

随机推荐