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

如何仅忽略由Markdown生成的PDF文件,保留非生成PDF?

嘿,这个问题确实有点棘手,因为Git的.gitignore本身是基于文件名模式匹配的,没办法直接“检查是否存在对应的Markdown文件”来决定是否忽略PDF。不过有几个实用的方法可以实现你的需求,我给你梳理一下:

方法1:强制添加非生成的PDF(最省心)

这个方法不需要复杂的规则,核心思路是:先忽略所有PDF,再把非生成的PDF强制加入Git追踪,这样生成的同名PDF会自动被忽略,而手动添加的PDF会被保留。

步骤如下:

  1. 在你的.gitignore里添加一行:
    *.pdf
    
    这会让Git忽略所有PDF文件。
  2. 对于那些非生成的、需要保留的PDF(也就是没有对应.md文件的),用强制添加命令把它们加入Git:
    git add -f your-manual-file.pdf
    
    一旦用-f参数添加后,Git会一直追踪这个文件,哪怕它在.gitignore的忽略列表里。之后生成的同名PDF(比如article.pdf对应article.md)会自动被忽略,完全不用管。

方法2:用脚本自动生成忽略规则

如果你不想手动执行强制添加,可以写个简单的脚本,自动找出所有有对应.md的PDF,把它们加入.gitignore,同时保留其他PDF。

比如写个Bash脚本(适用于Linux/macOS):

#!/bin/bash
# 临时文件存放自动生成的规则
temp_file=".gitignore_auto"
> "$temp_file"

# 遍历所有md文件,生成对应的pdf忽略规则
for md_file in *.md; do
    pdf_file="${md_file%.md}.pdf"
    echo "$pdf_file" >> "$temp_file"
done

# 添加一行,取消忽略所有其他PDF
echo "!*.pdf" >> "$temp_file"

# 把自动生成的规则合并到.gitignore(避免重复)
grep -v -f "$temp_file" .gitignore > .gitignore.tmp
cat "$temp_file" >> .gitignore.tmp
mv .gitignore.tmp .gitignore

rm "$temp_file"

每次生成PDF后运行这个脚本,它会自动更新.gitignore,只忽略那些有对应Markdown的PDF。

方法3:把生成文件放到专属目录(最规范)

如果你的生成工具支持调整输出路径,最好把生成的PDF和HTML放到一个专门的文件夹里,比如generated/或者output/。然后在.gitignore里只忽略这个目录下的PDF:

generated/*.pdf

这样既不用写复杂规则,也不用担心误忽略手动添加的PDF,是最规范的做法。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 07:37:35