5

我有一个创建 install-tars 的远程裸存储库(没有工作目录)。效果很好。但现在我只想创建已更改文件的 tars。我试过这样:

git archive --format=tar --prefix='/' HEAD `git diff V1.02 --name-only` | gzip -9 > ~/tars/update-v1.02-`git describe master --tags`.tar.gz

这适用于我的本地存储库。它使用从标记版本 V1.02 到最新提交的文件创建一个 tar。但它不适用于裸存储库。还有其他解决方案吗?

4

1 回答 1

1

的两种提交形式git diff将在裸存储库 ( git diff [options] <commit> <commit> [--] [<path>...]) 中工作。

以下应该做我理解你想要的:

git archive --format=tar --prefix='/' master `git diff V1.02 master --name-only` | gzip -9 > ~/tars/update-v1.02-`git describe master --tags`.tar.gz

我还建议将HEAD原始命令更改为master(如上所示)以与命令的其余部分保持一致,并且如果有人更改了哪个分支HEAD指向(或者在上面的示例中替换所有出现的 ) ,则master具有弹性。HEAD

于 2012-10-17T06:00:29.480 回答