是否可以将git clean -fd
的范围限制为单个目录?理想情况下,我会搜索类似
的东西
git clean -fd --include=./delete_only/files_and_dirs_below_me/*
背景:
我的Web项目有一个bash更新脚本。工作流程如下:
config/sync
config/sync
问题是“导出当前配置”会在git跟踪的.yml
目录中创建和/或删除一堆config/sync
文件。例如。如果在prod env上禁用模块foo
,则config export将删除相应的config/sync/foo.yml
文件。但是,如果在dev上也启用了该特定模块,则该文件在dev上已经存在,并且在第3步之后不会被删除,从而导致在第4步无效的配置导入,而模块foo
仍处于启用状态。
我现在想添加步骤
3.5 git clean -fd --include =。/ config / sync / *
和
8.5 git clean -fd --include =。/ config / sync / *
对于无人看管的脚本来说足够安全。
几年前,我遇到了一个很糟糕的经历,即维护脚本失败,基本上执行了cd some_dir && rm -rf
(猜测远程服务器无法访问时发生了什么……),而我这次要更加小心。
答案 0 :(得分:0)
git clean
接受零个或多个路径参数。根据{{3}}:
如果给出任何可选的
<path>...
参数,则仅影响那些路径。
因此,简单的git clean -fd config/sync
应该可以解决问题。