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

DITA用户求助:排除Git跟踪目录但仍供GitHub工作流使用的方法

解决方案

针对你既要推送HTML文件到远程供GitHub工作流发布,又不想本地每次提交都被大量HTML变更干扰的需求,这里提供两种适合SourceTree用户的方案:

方法一:用skip-worktree标记忽略本地HTML变更(推荐)

这个方法能让Git“假装看不到”你本地对docs/文件的修改,但保留远程的HTML文件追踪,完美适配你的场景:

  1. 先确保docs/已被Git跟踪
    如果之前已经把docs/提交到远程过,直接跳过这步;如果没有,先在SourceTree里选中docs/所有文件,暂存、提交并推送一次,确保GitHub工作流能获取到文件。

  2. 设置忽略本地变更的标记
    打开SourceTree内置的终端(点击顶部「终端」按钮),执行命令:

    git update-index --skip-worktree docs/**/*
    

    执行后,你本地修改或重新生成的HTML文件就不会再出现在SourceTree的“未暂存变更”列表里了。

  3. 更新远程HTML时的操作
    当你需要把新生成的HTML推给工作流时:

    • 先取消标记:在终端执行 git update-index --no-skip-worktree docs/**/*
    • 在SourceTree里选中docs/所有文件,暂存、提交(提交信息可以写「更新HTML输出」)并推送
    • 推送完成后,重新执行第一步的命令恢复标记,避免后续HTML变更再被跟踪

    嫌命令麻烦?可以在SourceTree里加自定义操作一键执行:

    • 点击「工具」→「选项」→「自定义操作」→「添加」
    • 分别添加两个操作:
      • 名称:忽略docs本地变更;脚本路径填git,参数填update-index --skip-worktree docs/**/*
      • 名称:取消忽略docs本地变更;脚本路径填git,参数填update-index --no-skip-worktree docs/**/*
    • 之后右键仓库,就能在「自定义操作」里一键调用这两个命令。

方法二:用独立分支存储HTML文件

把源码和HTML输出完全分开到两个分支,更清晰,适合长期维护:

  1. 创建HTML专用分支
    在SourceTree里点击「分支」→「新建分支」,命名比如html-output,基于当前主分支(确保docs/已经在主分支里)。

  2. 主分支忽略docs/目录
    回到主分支,在仓库根目录新建.gitignore文件,添加一行 docs/,然后暂存、提交并推送这个文件,这样主分支以后就不会跟踪docs/的任何变更了。

  3. 更新HTML的流程

    • 在主分支修改.dita文件,提交推送
    • 切换到html-output分支,拉取主分支的最新变更(如果需要)
    • 本地执行DITA转换生成新HTML
    • 在html-output分支里暂存docs/所有文件,提交推送
    • 切回主分支继续工作,完全看不到HTML的变更
  4. 调整GitHub工作流
    把工作流里拉取代码的分支改成html-output,确保从这个分支获取HTML文件发布到Azure。

注意事项

  • 方法一中,如果远程的docs/文件被其他人修改,拉取时会触发冲突,这时候需要先取消标记,拉取合并后再重新设置。
  • 方法二更适合多人协作场景,分支职责明确,不会互相干扰。

内容的提问来源于stack exchange,提问作者Masu

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 00:27:20