我正在尝试使用以下命令在最近的3次提交中创建文件的存档。
git archive -o archive.zip $(git diff --name-only HEAD~3)
但是在最后一次提交中我删除了一些文件,这显示在diff
输出中。所以我收到了这个错误:
fatal: pathspec 'public/uploads/5839529ba9381.png' did not match any files
如何在git archive期间忽略提交中删除的文件?我已经尝试了--ignore-unmatch
参数,但它不起作用。
答案 0 :(得分:0)
基本上,@IBAction func onFilter(_ sender: Any) {
if ((sender as AnyObject).isSelected == true) {
hideSecondaryMenu()
(sender as AnyObject).isSelected = false
} else {
showSecondaryMenu()
(sender as AnyObject).isSelected = true
}
}
用于备份某个时间点的状态,不适合备份时间线的修改,即您无法通过git archive
保存delete files
的操作
如果要备份最新的3次提交,可以使用git archive
命令。
git bundle
或
git bundle create last_three_commit.bundle HEAD~3..HEAD
请运行git bundle create last_three_commit.bundle -3 HEAD
了解详情。
答案 1 :(得分:0)
我当时处在同样的情况下,这里有些起作用。
tar vczf archive.tar.gz --ignore-failed-read `git diff --name-only hash1 hash2`
我也在寻找, git存档忽略已删除的文件。我想创建一个文件存档,该文件在两个分支/标签/哈希等之间添加/修改。
解决方案是使用tar
而不是git archive,并以相同的方式传递git diff
的输出,这里唯一的好处是您实际上可以忽略丢失的文件( ({commits ))。另外要注意的一件事是,该标志应位于存档文件名之后。