在 Git 中删除超过 90 天的文件版本
Posted
技术标签:
【中文标题】在 Git 中删除超过 90 天的文件版本【英文标题】:Removing versions of files older than 90 days in Git 【发布时间】:2020-12-24 16:41:01 【问题描述】:我想知道是否有办法使用 Git 中的任何设置或某种保留策略来删除超过 90 天的某些版本的文件?
【问题讨论】:
从存储库、工作树中删除什么? 你好@ArkadiuszDrabczyk,是的,来自存储库。 我认为 Git 没有为此明确提供任何功能。如果他们提供,您必须与您的存储库管理平台(github/bitbucket 等)核实。 【参考方案1】:不,没有。 Git 旨在无限期地保留历史记录,因为每次提交的对象 ID 都是一个加密哈希,它隐含地涵盖了到那时为止的整个历史记录。
可能有外部工具可以做到这一点,但它们必然会重写整个历史记录并更改每次提交的哈希值。
如果您的目标是删除一些敏感信息,GitHub has documentation on how to do this 以及许多其他工具也可以做到这一点。
【讨论】:
【参考方案2】:如果您想使用新的提交删除文件,请点击此处:
~/bin/git-delete-files-older-then.sh //
#!/bin/bash
date=$1
git ls-files | while read path
do
if [ "$(git log --since \"$date\" -- $path)" == "" ]; then
rm "$path"
fi
done
chmod +x ~/bin/git-delete-files-older-then.sh
bash
(或 zsh ...)
cd /your/dir/YOUR_GIT_PROJECT/foo/
git-files-older-then.sh "2019-01-01"
// 这将删除“foo”目录中早于“2019-01-01”的所有文件
【讨论】:
以上是关于在 Git 中删除超过 90 天的文件版本的主要内容,如果未能解决你的问题,请参考以下文章