capistrano - git ls-remote -h没有git url

时间:2014-05-29 16:35:08

标签: git capistrano3

我是使用Capistrano的新手。我正确设置了它,但是当我运行cap staging deploy时,我得到了这个 -

DEBUG [b678d5eb] Command: ( GIT_ASKPASS=/bin/echo GIT_SSH=/tmp/myproj/git-ssh.sh /usr/bin/env git ls-remote -h  )
DEBUG [b678d5eb]    usage: git ls-remote [--heads] [--tags]  [-u <exec> | --upload-pack <exec>] <repository> <refs>...
DEBUG [b678d5eb] Finished in 0.325 seconds with exit status 129 (failed).

我认为git clone url应该在-h之后,但我不确定。

我正在使用Capistrano 3.2.1。这是我的deploy.rb -

lock '3.2.1'
set :application, 'myproj'
set :repository, 'https://vrao@git.test.com/scm/~vrao/myproj.git'
set :scm_passphrase, 'blah'

任何帮助都会很棒。

2 个答案:

答案 0 :(得分:11)

没关系,我正在关注capistrano 2x的文档,而我已经安装了3.2.1。

对于可能面临相同问题的任何人,在capistrano 2x中,您可以通过设置存储库变量来指定git repo,而在3x中,它已被更改为repo_url。我改变它,现在它工作正常。这是我建议遵循3x的文档 - http://capistranorb.com/documentation/getting-started/installation/

答案 1 :(得分:0)

git clone URL应该在-h之后,但是我不确定。

确实,您已经找到了为什么您的网址为空(错误的capistrano版本)

在这种情况下,使用消息是(-hmeaning --heads没有 URL)。

Git 2.25.2(2020年3月)中对此进行了记录。
像其他任何Git子命令一样,“ git ls-remote -h”和“ git grep -h”都提供了简短的用法帮助,但是可以期望前者的行为与“ git ls-remote --head”相同(后者没有其他明智的行为。

文档已更新,试图对此进行澄清。

请参见commit 1ff466cJunio C Hamano (gitster)(2020年2月27日)。
(由Junio C Hamano -- gitster --commit cdef998中合并,2020年3月11日)

Documentation:澄清一下,-h独自代表help

我们似乎正在吸引新用户,他们每20个月左右就会对此“ -h”感到困惑,他们一直希望提供帮助,但是-h所使用的命令似乎是一个很好的简短形式选择要它代表其他意思。”妥协。

让我们确保读者知道 git cmd -h(没有其他参数)是一种获取用法文本的方法,即使对于ls-remote和{{1 }}。

还扩展了grep中已经存在的描述,因为很明显,用户仍然会对当前文本感到困惑。

git ls-remote documentation现在包括:

请注意,gitcli.txt在命令行上未作任何使用会提供帮助,与其他git子命令一致

还有gitcli

请注意,当命令行中除了git ls-remote -h以外的其他内容时,某些子命令(例如git grep -h xxx)的行为可能会有所不同,但是-h的含义是:始终如一地给出用法。