You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Jenkins Freestyle项目:清理工作区保留.gitignore并支持开关控制

Jenkins Freestyle 保留.gitignore文件的清理方案及开关控制

Git插件自带的"构建前清理工作区"行为会默认删除所有未跟踪文件(包括.gitignore中标记的),而且没有内置开关选项。要实现仅清理未被忽略的文件+开关控制,可按以下方案操作:

方案1:自定义脚本替代默认清理(推荐)

1. 关闭Git插件的默认清理

进入项目配置,找到Git的「高级行为」,移除「构建前清理工作区」的配置项。

2. 添加开关参数

在「此项目已参数化」中,添加布尔参数:

  • 参数名:CLEAN_IGNORED_FILES
  • 描述:是否清理.gitignore中的文件
  • 默认值:false(默认保留忽略文件)

3. 添加构建前脚本步骤

根据Jenkins服务器的操作系统,选择对应的脚本步骤:

Linux/macOS 用Shell脚本:

# 根据参数决定清理范围
if [ "$CLEAN_IGNORED_FILES" = "true" ]; then
  git clean -fdx  # 清理所有未跟踪文件(含.gitignore内的)
else
  git clean -fd   # 仅清理未被.gitignore忽略的未跟踪文件
fi
# 可选:重置已修改的跟踪文件到HEAD状态
git reset --hard HEAD

Windows 用PowerShell脚本:

if ($env:CLEAN_IGNORED_FILES -eq "true") {
  git clean -fdx  # 清理所有未跟踪文件(含.gitignore内的)
} else {
  git clean -fd   # 仅清理未被.gitignore忽略的未跟踪文件
}
# 可选:重置已修改的跟踪文件到HEAD状态
git reset --hard HEAD

方案2:插件增强(可选)

如果偏好可视化配置,可使用支持.gitignore过滤的清理插件,在「构建环境」中添加清理步骤,同时配合上述布尔参数来切换清理模式。核心逻辑和脚本方案一致,都是通过git clean的-x参数控制是否包含.gitignore内容。

内容的提问来源于stack exchange,提问作者Huỳnh Thăng Lệ

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.16 13:10:00