2015-10-08 63 views
1

我想要做的就是通過節點執行cmd git submodule -q add -f --depth 1 https://github.com/user/repo node_modules/repo,但我似乎無法讓它工作。無法通過節點調用`git submodule add` child_process.spawn

var cmd = [ 
    'git', 
    [ 
    'submodule', 
    '--quiet', 
    'add', 
    '--force', 
    '--depth', '1', 
    (self.url.replace('git+', '')), 
    self.installTo 
    ] 
] 

var git = spawn.apply(spawn, cmd) 

git.stderr.on('data', log.error) 
git.on('close', function (code, signal) { 
    // irrelevant because it errors out... 
} 

我得到的終端出現以下錯誤:

ERR! usage: git submodule [--quiet] add [-b <branch>] [-f|--force] [--name <name>] [--reference <repository>] [--] <repository> [<path>] 
or: git submodule [--quiet] status [--cached] [--recursive] [--] [<path>...] 
or: git submodule [--quiet] init [--] [<path>...] 
or: git submodule [--quiet] deinit [-f|--force] [--] <path>... 
or: git submodule [--quiet] update [--init] [--remote] [-N|--no-fetch] [-f|--force] [--checkout|--merge|--rebase] [--reference <repository>] [--recursive] [--] [<path>...] 
or: git submodule [--quiet] summary [--cached|--files] [--summary-limit <n>] [commit] [--] [<path>...] 
or: git submodule [--quiet] foreach [--recursive] <command> 
or: git submodule [--quiet] sync [--recursive] [--] [<path>...] 

回答

1

用法消息並沒有提到--depth。

這意味着使用的git版本不夠新以包含該選項。
它必須是一個以前的git 1.8.4(8月2013年):被commit 275cd18加入由Fredrik Gustafsson (iveqy)

+0

該選項,我在git的v2.5.3,如果我在shell中運行它,直接它的工作原理。 – CaseyWebb

+0

@CaseyWebb肯定,但節點使用的git似乎是一個不同的,舊的。用法信息告訴你。 – VonC

+0

我再次嘗試沒有額外的參數,並得到相同的錯誤 – CaseyWebb