我想将 React 的 build 文件夹的内容部署到 tomcat 的 webapps 目录。
Github上的项目称为dashboard,它有一个名为client的子目录,其中包含开发代码以及生产构建文件(/client/build)。我想将该构建文件的内容提取到 webapps/ 中名为仪表板/的目录中。
我尝试使用稀疏结帐,但发生的情况是完整路径(/client/build)被放置在仪表板目录中。因此,结构不是 webapps/dashboard/ 构建文件夹的内容,而是 webapps/dashboard/client/build/ 构建文件夹的内容。
有没有办法只从带有稀疏签出的文件夹中提取文件,或者有没有办法配置 tomcat 来查找 /client/build 来查找它需要的文件?
您可以使用稀疏签出模式来签出有限的文件子集,但不能使用它来重命名文件。 如果文件的名称是
a/b/c/d
- 请注意文件名不包含文件夹名称; a/b/c/d
只是一个文件名;是你的操作系统,而不是 Git,坚持将其作为文件 d
存储在文件夹 c
中,依此类推 — 那么就 Git 而言,该文件的名称是 a/b/c/d
。1 稀疏结帐代码将使用该名称进行检查。
您可以很容易做的是使用
git archive
生成tarball或zip存档,然后使用任何允许您跳过一些路径名组件的解存档器;或者,如果您只有一个文件要提取,请使用 git show
或 git cat-file -p
提取文件,并将此命令的输出定向到文件。
1我正在考虑处理文件重命名问题的通用方法,但它仍处于形成阶段,并且不能保证 Git 项目人员会接受我在这里提出的任何内容。
使用 Git 2.47(2024 年第 4 季度),批次 15,“
git cat-file
”(man) 与稀疏索引配合良好,并被标记为这样。
这意味着即使在稀疏索引中,您也可以尝试
git cat-file -p $REV:path
。
请参阅提交 e65b0c7、提交 68c5759(2024 年 9 月 3 日),作者:Kevin Lyles (
kevinlyles
)。gitster
-- 合并于 commit f286e0a,2024 年 9 月 12 日)
:标记“git cat-file”稀疏索引兼容builtin/cat-file
签署人:Kevin Lyles
'(man) 与索引的配合方式(这将给出索引中的文件内容)。git cat-file
'
' 每当通过使用“:”语法指定对象从索引请求内容时,都会将稀疏索引扩展为完整索引。git cat-file
即使请求的文件是稀疏索引的一部分也是如此,并且在稀疏索引中工作时会导致“”操作慢得多。git cat-file
将“
”标记为不需要完整索引,这样当您请求稀疏索引之外的文件时,只需支付将稀疏索引扩展到完整索引的成本。git cat-file
添加测试以确保:
- '
每当您请求稀疏索引之外的内容时,' 无论文件是否在稀疏索引中,都会返回正确的文件内容git cat-file
- '
'都会扩展到完整索引git cat-file