Git别名导出repo cmd(git archive | tar)

时间:2015-09-28 16:39:21

标签: git

我有命令:

git archive --format=tar --remote git@remoteid:repoid tagid | tar -xf -

从远程“remoteid”获取git repo“repoid”,并将标记“tagid”的repo导出到当前目录。但是,当我尝试将其添加为git alias命令时,它不起作用。它没有给我任何错误;它根本不会产生预期的结果。

git alias命令:

[alias] export1 = !sh -c 'git archive --format=tar --remote git@$1:$2 $3 | tar -xf -' - export2 = !sh -c 'git archive --format=tar --remote $1 $2 | tar -xf -' -

称为

git export1 remoteid repoid tagid git export2 git@remoteid:repoid tagid

我知道别名的结构与其他命令一起工作而不是这个导出。例如:

[alias] deletetag = !sh -c 'git tag -d $1 && git push origin :refs/tags/$1' -

称为

git deletetag V1.01.000

将从本地仓库和远程原始仓库中删除标签。

任何想法我做错了什么以及如何解决它将非常感激。

1 个答案:

答案 0 :(得分:0)

不幸的是,我无法编辑我的帖子来提出我在问题中发现的解决方案。无论如何,

最初的问题似乎是git别名不在当前目录下运行,如果它在现有的git仓库中。相反,他们运行在该回购的根源。所以别名的工作就是不把文件放在我想要的地方。为了解决这个问题,我可以将别名更改为:

export = !sh -c 'git archive --format=tar --remote git@$1:$2 $3 | tar -xf - -C $PWD/$GIT_PREFIX' -

哪个在现有的git仓库中工作,而不是在一个仓库中。