如何配置复制文件时排除.gitignore中指定的内容?
嘿,这个问题我太熟了!之前迁移项目的时候也踩过手动复制带一堆垃圾文件的坑,既然你的项目已经配好了.gitignore,其实用原生工具就能轻松解决,给你几个靠谱的方案:
方法1:用Git Archive直接打包(最省心)
Git本身就清楚哪些文件该忽略,直接用它的归档命令就能生成一个不包含任何被忽略内容的压缩包,连.git文件夹都会自动排除,步骤超简单:
- 打开终端,进入你的项目根目录
- 运行命令:
这里的git archive -o project-backup.zip HEADproject-backup.zip是你要生成的压缩包名字,改成你喜欢的就行;HEAD表示打包当前分支的最新状态。 - 把这个压缩包传到目标设备,解压后就是干净的项目文件啦!
方法2:用rsync直接复制(适合局域网内迁移)
如果不想打包,想直接把文件同步到另一台设备(比如同一局域网的电脑),rsync配合Git的忽略规则是绝佳选择:
运行下面的命令(替换成你的源路径和目标路径):
rsync -av --exclude-from=<(git ls-files --exclude-standard --others --directory) /path/to/your/js-project/ /path/to/target-device/folder/
关键参数解释:
-av:归档模式(保留文件权限、目录结构)+ 显示同步详情--exclude-from=<(...):用括号里的命令动态生成要排除的文件列表git ls-files --exclude-standard --others --directory:列出所有被.gitignore忽略、且未被Git追踪的文件和文件夹,刚好是我们要跳过的内容
小提醒:处理已被Git追踪但应该忽略的文件
如果有些文件本来在.gitignore里,但之前不小心被git add过(已经被Git追踪了),那上面的方法还是会包含它们。这时候需要先把它们从Git的追踪列表里移除:
git rm --cached 文件名/文件夹名
然后提交这个变更:
git commit -m "Stop tracking ignored files"
之后再用上面的方法打包/复制,这些文件就会被排除啦!
内容的提问来源于stack exchange,提问作者Set Kyar Wa Lar
相关产品推荐
相关产品推荐

