一键在任意工作目录中设置 Git 跟踪,并附带安全为重点的 .gitignore(包括凭证、TLS/SSH 私钥、令牌、运行时缓存和 PID 等)
工作空间- git- 设置是一项面向实际任务的技能,主要用于一个命令为任何工作目录设置安全合理的 Git 跟踪 —— 并进行内置的安全审计;一个初始化 Git 版本 con 的零依赖性 Bash 脚本。
从功能定位来看,该技能强调把分散的操作要求整理成清晰、可复用的处理流程,使用户能够围绕既定目标快速准备输入、选择执行方式并获得结构化结果。实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;
若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。
一条命令即可为任意工作目录配置安全、合理 Git 版本控制 —— 内置安全审计功能。
一个零依赖的 Bash 脚本,用于为项目初始化 Git 版本控制,附带经过实战验证的安全 .gitignore 文件,在首次提交前警告大文件,并可对现有仓库进行敏感信息泄露与未跟踪文件审计。
纯 bash + git 实现。无需 Python、npm 或任何第三方包。
# 初始化 / 对齐配置(默认作用于当前目录;自动以目录名作为项目名) bash scripts/setup.sh # 指定工作区路径与项目名 bash scripts/setup.sh /path/to/project "MyProject" # 审计模式(只读):检测敏感文件 / 未跟踪文件 / 配置项 bash scripts/setup.sh --audit # 模拟运行模式:预览所有操作,但不实际执行 bash scripts/setup.sh --dry-run
| 项目 | 优先级 |
|---|---|
| 工作区路径 | CLI 参数 > WORKSPACE_DIR 环境变量 > 当前目录 |
| Git 身份信息 | GIT_AUTHOR_NAME / GIT_AUTHOR_EMAIL 环境变量 > 已存在的 git 配置 > 交互式提示 |
若仅提供邮箱地址,则使用邮箱前缀(@ 符号之前部分)作为用户名(后续可通过
git config修改)。
| 模式 | 作用 | 是否修改文件系统? |
|---|---|---|
| (默认) init / align | 执行 git init + 写入安全的 .gitignore + 大文件警告 + 首次提交 |
✏️ 是 |
--audit |
只读健康检查:已追踪的敏感信息 / 未跟踪文件 / core.autocrlf 配置 |
👀 否 |
--dry-run |
预览所有变更,但不实际应用 | 👀 否 |
WORKSPACE_DIR > 当前目录git init — 若仓库已存在则跳过(幂等);设置 core.autocrlf=input 统一行尾格式;默认分支名为 main.gitignore — 若该文件已存在,则显示 diff 并询问是否覆盖.gitignore 规则(通用安全用途)| 类别 | 匹配模式 |
|---|---|
| 凭证类文件 | .env, .env.*, *.pem, secrets/, .credentials/, *token*.json, *secret*.json |
| TLS / SSH 密钥 | **/certs/*.key, id_rsa, id_dsa, id_ecdsa, id_ed25519, *.p12, *.keystore |
| 临时 / 缓存文件 | tmp/, *.tmp, *.cache, *.log, *.pid |
| 操作系统 / 编辑器生成文件 | .DS_Store, ._*, Thumbs.db, .vscode/, .idea/, *.swp 等 |
| 依赖项目录 | node_modules/, __pycache__/, *.pyc, .venv/, venv/, .pytest_cache/ |
| 构建输出目录 | output/, dist/, build/, out/, *.egg-info/ |
注意:私钥忽略规则限定在
**/certs/*.key(而非宽泛的*.key),以避免误隐藏其他位置合法使用的.key文件。
--audit)一次只读运行,输出三项检查结果,绝不修改任何内容:
git add 也未被 .gitignore 忽略的文件。core.autocrlf 是否合理,以及 .gitignore 是否存在。git remote add origin .gitignore 已存在,会显示 diff 并由用户决定是否覆盖。git(必需)— https://git-scm.com/downloadsbash 4.0+coreutils(含 numfmt/stat/realpath)— 大多数类 Unix 系统已预装;numfmt 为可选依赖(缺失时将回退至原始字节计数)。纯 bash + git 实现,无需 Python 或任何第三方包。