Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 删除存储库中最旧的文件_Linux_Git_Bash - Fatal编程技术网

Linux 删除存储库中最旧的文件

Linux 删除存储库中最旧的文件,linux,git,bash,Linux,Git,Bash,我有一个git repo,还有一个文件的修订版,日期是unix时间戳。我想获取最旧的文件(即时间戳最小的文件)并将其删除 单独使用Bash是否可以实现这一点?如果可以,如何实现?如果要在目录树中查找最旧的文件,可以执行以下操作: ls -tr $(find . -type f) | head -1 find . -type f -mtime +5 -print | xargs git rm git commit -m "deleted things" 只要文件数量不太大,这种方法就行。如果您

我有一个git repo,还有一个文件的修订版,日期是unix时间戳。我想获取最旧的文件(即时间戳最小的文件)并将其删除


单独使用Bash是否可以实现这一点?如果可以,如何实现?

如果要在目录树中查找最旧的文件,可以执行以下操作:

ls -tr $(find . -type f) | head -1
find . -type f -mtime +5 -print | xargs git rm
git commit -m "deleted things"
只要文件数量不太大,这种方法就行。如果您愿意删除“超过一定天数的所有文件”,那么就更容易了。例如,如果您想清除任何超过5天的内容:

find . -type f -mtime +5 -print | xargs rm
你不想一字不差地运行这个程序;您需要提供适当的过滤器来查找,或者在适当的目录下创建根目录,这样您就只删除您真正想要删除的文件

显然,您还需要将这些删除提交到git。你可以这样做:

ls -tr $(find . -type f) | head -1
find . -type f -mtime +5 -print | xargs git rm
git commit -m "deleted things"

…但请注意,这可能会提交您以前使用“git add”进行的更改。有些事情最好是手工做的。

所以。。。你想故意破坏回购协议?它们是构建的。我不想因为不断上传构建而浪费我所有的回购空间。这就是为什么你把它们放在忽略文件中。我想上传它们,但我想删除已经上传的旧版本。我不确定这个问题与
git
有什么关系。据我所知,你是在问,“如何在目录树中找到最旧的文件?”我读对了吗?