git - 带有 npm 包的 git 同步存储库?
问题描述
所以我正在尝试Forkthreejs库并针对我的特定用途进行了一些编辑,问题是我只需要npm中的文件而不是整个 git 存储库!
有没有办法只从那个 git 派生 NPM 包中存在的文件?我尝试安装 npm 文件并将它们推送到新的存储库,但是我无法从上游(主 git 存储库)提取更新。
克隆整个软件包depth=1
仍然是一场噩梦,因为它几乎是 1GB~ 并且随着时间的推移而增长。
所以我正在考虑安装 npm 文件并将它们推送到新的存储库,但我想在发布新版本的 npm 时保持新存储库的更新(肯定不会忽略我的更改)
解决方案
据我了解您现在的目标,您希望拥有发布于git
的版本的存储库threejs
吗?npm
由于我不知道这个git
接口npm
的问题是如何跟踪npm
包版本git
?
为此,您需要创建自己的git
存储库,将各个发布版本添加为提交。您可以通过下载和提取版本的 tarball 并将它们检入到 中来做到这一点git
,例如
# use dedicated branch for npm versions
git checkout npm
# remove all files
rm -rf *
# download and extract npm version $version
npm view three@$version dist.tarball | xargs curl -L | tar -zx package/ --strip-components=1
# add all files to git and commit
git add -f .
git commit -m "npm version $version"
npm view three@$version dist.tarball
: 提供包存档的直接 urlxargs curl -L
:下载通过管道传递的 url 下的档案tar -zx package/ --strip-components=1
:package
从档案中提取director并剥离第一个路径组件(package/
),即将目录的内容提取package
到当前目录中git add -f
: 添加当前目录中的所有文件 -即使是其他被忽略的文件(-f
) 因为存档可能包含.gitignore
忽略构建文件的文件。
通过这种方式,您可以遍历npm
包的所有(相关)版本,为您提供它们在 git 中的差异。您可以使用 获取所有可用版本的列表npm view three@$version versions
。
如果您想维护自己对文件的编辑,可以在单独的分支上执行此操作
git checkout private
# do edits
# commit
# merge with latest changes from npm
git merge npm
推荐阅读
- python - 在 python3 中自动执行 Cloud Firestore 导出
- amazon-web-services - 如何找出谁在 AWS 上创建了 ec2 实例?
- coldfusion - 如何使用
- c# - 如何修复 winmgmt 错误代码 0x8007007E?
- node.js - 在 Node Js 命令提示符窗口中找不到模块
- autosys - 如何将工作依赖与开始时间结合起来
- python - 按唯一 ID 分组、应用函数并为下一组更新特定列
- angular - Angular:如何处理 null ElementRef?
- php - 管理多个 PHP 会话会导致脚本在特定情况下挂起
- c# - 代码覆盖率和代码行在 sonarqube 控制台中显示为“-”