在裸存储库中更改文件的git存档

时间:2012-10-11 14:01:01

标签: git diff archive

我有一个创建安装目录的远程裸存储库(没有工作目录)。工作得很好。但现在我只想创建已更改文件的焦油。我这样试过:

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。但它不适用于裸存储库。还有其他解决方案吗?

1 个答案:

答案 0 :(得分: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(如上所示)以与命令的其余部分保持一致,并且如果有人更改了哪个分支{{1} }指向(或者替换上面示例中所有HEAD出现的master)。