2015-09-28 68 views
1

我有命令:Git的別名出口回購CMD(GIT檔案|焦油)

git archive --format=tar --remote [email protected]:repoid tagid | tar -xf -

更是把混帳回購協議從遠程「remoteid」「repoid」和出口回購的標籤「tagid」到當前目錄。但是,當我嘗試將其添加爲git alias命令時,它不起作用。它不會給我任何錯誤;它根本不會產生預期的結果。

混帳alias命令:

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

稱爲

git export1 remoteid repoid tagid git export2 [email protected]:repoid tagid

我知道與其他命令別名工作結構只是沒有這個出口。例如:

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

稱爲

git deletetag V1.01.000

將從本地回購和遠程回購起源刪除標記。

任何想法我做錯了,如何解決它將不勝感激。

+0

好的,我發現了這個問題非常有趣的部分。只要您的當前目錄不在現有的git倉庫中,「export1」上面的git別名就會起作用。但是,如果您當前的目錄位於現有的git repo中,它會將文件導出到該現有repo的根目錄。所以現在的問題是:有沒有辦法獲得git別名的執行目錄?不幸的是,$ PWD返回了git repo root ... –

回答

0

不幸的是,我不能編輯我的帖子,把我在問題中發現的解決方案。無論如何,

最初的問題似乎是,如果git別名在現有的git倉庫中不會在當前目錄運行。相反,他們運行在該回購的根源上。所以這個別名正在工作,沒有把文件放在我想要的地方。爲了解決這個問題,我能夠將別名更改爲:

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

哪些在現有的git倉庫中工作,而不是在一個倉庫中工作。