Git存档将未版本控制的文件添加到子目录
Posted
技术标签:
【中文标题】Git存档将未版本控制的文件添加到子目录【英文标题】:Git archive adding not versioned file to subdirectory 【发布时间】:2021-12-28 20:15:59 【问题描述】:尝试使用这样的命令制作 zip 存档
git archive -v -o app.zip --add-file=.env --add-file=.ebextensions/my-scripts.config HEAD
通过 --add-file 选项添加 2 个未受版本控制的文件。
问题是 my-script.config 添加到存档的根目录,但我需要它在最初的 .ebextensions 文件夹中。
有没有办法用git archive命令来实现?
【问题讨论】:
"问题是 my-script.config 添加到存档的根目录..." 这就是git archive --add-file
works 的方式 — 文件添加到 --prefix
,默认是根。 “有没有办法用git archive
命令实现它?” 很可能没有。您可以尝试使用zip
在git archive
后面添加文件。
【参考方案1】:
这在任何地方都没有记录,所以我不确定你应该指望多少,但测试表明它有效:
git archive -v -o app.zip \
--add-file=.env \
--prefix=.ebextensions/ --add-file=.ebextensions/my-scripts.config \
--prefix= HEAD
(全部作为没有反斜杠换行符的一行,或者在 sh / bash 中保留反斜杠)使用 Git 2.34 版可以解决问题。根据代码,它应该适用于所有具有 --add-file
的 Git 版本(2.29 及更高版本)。本质上,--prefix
设置了 current 前缀; --add-file
添加一个文件,其路径名由前缀加上路径的尾部部分组成,--prefix
然后 替换 前缀,这样您就不必影响其余的操作.
【讨论】:
是的,它有效!非常感谢!只是对子文件夹前缀路径稍作修正,它应该是 --prefix=.ebextensions/ @AndreyK:是的,我在测试时发现了这一点,然后忘了把它放在上面的文字中,哎呀。会修复的。以上是关于Git存档将未版本控制的文件添加到子目录的主要内容,如果未能解决你的问题,请参考以下文章