我有一个创建安装目录的远程裸存储库(没有工作目录)。工作得很好。但现在我只想创建已更改文件的焦油。我这样试过:
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。但它不适用于裸存储库。还有其他解决方案吗?
答案 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
)。