我有命令:
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
将从本地仓库和远程原始仓库中删除标签。
任何想法我做错了什么以及如何解决它将非常感激。
答案 0 :(得分:0)
不幸的是,我无法编辑我的帖子来提出我在问题中发现的解决方案。无论如何,
最初的问题似乎是git别名不在当前目录下运行,如果它在现有的git仓库中。相反,他们运行在该回购的根源。所以别名的工作就是不把文件放在我想要的地方。为了解决这个问题,我可以将别名更改为:
export = !sh -c 'git archive --format=tar --remote git@$1:$2 $3 | tar -xf - -C $PWD/$GIT_PREFIX' -
哪个在现有的git仓库中工作,而不是在一个仓库中。