git存档可以包含.git项目所在的目录吗?
例如,假设我的目录结构如下:
-- /my-project-dir
----- /.git
----- /css
----- index.html
----- scripts.js
Run Code Online (Sandbox Code Playgroud)
默认情况下,当我执行git存档时,我最终得到一个ZIP文件,如下所示:
-- my-project-dir.zip
----- /css
----- index.html
----- scripts.js
Run Code Online (Sandbox Code Playgroud)
我想知道archive命令是否也可以包含父目录,例如:
-- my-project-dir.zip
----- /my-project-dir
-------- /css
-------- index.html
-------- scripts.js
Run Code Online (Sandbox Code Playgroud) 如何将所有提交导出到 ZIP 文件(包含所有文件,而不仅仅是 patch/diff):
myproject-commit1-67d91ab.zip
myproject-commit2-9283acd.zip
myproject-commit3-c57daa6.zip
...
Run Code Online (Sandbox Code Playgroud)
或进入目录:
myproject-commit1-67d91ab/
myproject-commit2-9283acd/
myproject-commit3-c57daa6/
Run Code Online (Sandbox Code Playgroud)
?
我正在考虑这样的命令:
git archive --format zip --output myproject-commit3.zip c57daa6
Run Code Online (Sandbox Code Playgroud)
来自如何使用 git-archive 导出特定提交?,但是如何获得所有提交?
笔记:
目标是导出每次git提交的所有文件,这样即使我的机器上没有这些文件,我也可以访问它们
答案来自如何通过运动鞋网(外部文件)将 Git 更改集从一个存储库导出到另一个存储库?创建一个.bundle文件,但如果没有 似乎无法访问它git,所以这不是我要找的
这几乎有效:
for ((i = 0;; ++i)); do git checkout master~$i || break; tar czf ../myproject-commit$i.tgz .; done
Run Code Online (Sandbox Code Playgroud)
但它还会归档当前目录中未
编辑到存储库的所有文件git add...如何避免此问题?
我想从项目中获取一些文件:我不需要克隆整个存储库:我只需要来自主分支的最新快照.这对我来说很重要,因为我的带宽非常低,下载所有内容需要一些时间.
在另一个问题上,我看到可以使用'git archive'这样做,不幸的是,似乎它不适用于https:
git archive --format=tar --remote=https://github.com/thomaspark/bootswatch.git master | tar tvf -
returns "fatal: Operation not supported by protocol."
Run Code Online (Sandbox Code Playgroud)
此命令与ssh://一起使用,但不与https://一起使用
对于github,我可以在Web界面上下载提供的zip文件,但对于其他没有提供它的存储库,如何从git存储库https URL获取简单快照?
我的管道有 3 个阶段,所有 3 个阶段中的每个作业都创建一个 xml 数据文件。这些作业并行运行。
我想在第四阶段合并所有 xml 数据文件。下面是我的yml代码
stages:
- deploy
- test
- execute
- artifact
script:
- XYZ
artifacts:
name: datafile.xml
paths:
- data/
Run Code Online (Sandbox Code Playgroud)
问题:我如何收集以前作业中的所有 xml 来合并它?文件名是唯一的。
我按照指南操作并设法创建了我的git存储库的zip存档,通过这样做:
git archive HEAD --format=zip > c:\myarchive.zip
Run Code Online (Sandbox Code Playgroud)
我想这样做的原因是我已经完成了项目,所以我要删除我一直在进行开发的VM,但我想要备份我已经完成的工作以便我可以如果我需要,请稍后再提及.但是,我无法弄清楚如何打开创建的zip文件.
通常,我会双击一个zip文件来打开它,但是当我这样做时,我看到了这个错误:
Windows cannot open the folder.
The Compressed (zipped) Folder 'C:\myarchive.zip' is invalid.'
Run Code Online (Sandbox Code Playgroud)
我曾尝试重新创建zip文件几次,但它没有改变任何东西.有什么想法吗?