[英]Capistrano DigitalOcean Ubuntu 14.04 fatal: Not a git repository (or any of the parent directories) .git
[英]Capistrano 3 to ubuntu 14.04 git error
由於ubuntu服務器上的git錯誤,我的capistrino檢查失敗了。
得到這個日志
$ cap staging deploy:check --trace
** Invoke staging (first_time)
** Execute staging
** Invoke load:defaults (first_time)
** Execute load:defaults
** Invoke deploy:check (first_time)
** Execute deploy:check
** Invoke git:check (first_time)
** Invoke git:wrapper (first_time)
** Execute git:wrapper
INFO[bf639f43] Running /usr/bin/env mkdir -p /tmp/zarapp/ on 54.169.61.155
DEBUG[bf639f43] Command: /usr/bin/env mkdir -p /tmp/zarapp/
INFO[bf639f43] Finished in 1.368 seconds with exit status 0 (successful).
DEBUGUploading /tmp/zarapp/git-ssh.sh 0.0%
INFOUploading /tmp/zarapp/git-ssh.sh 100.0%
INFO[c06c1df0] Running /usr/bin/env chmod +x /tmp/zarapp/git-ssh.sh on 54.169.61.155
DEBUG[c06c1df0] Command: /usr/bin/env chmod +x /tmp/zarapp/git-ssh.sh
INFO[c06c1df0] Finished in 0.162 seconds with exit status 0 (successful).
** Execute git:check
DEBUG[d6b0ae0e] Running /usr/bin/env git ls-remote -h on 54.169.61.155
DEBUG[d6b0ae0e] Command: ( GIT_ASKPASS=/bin/echo GIT_SSH=/tmp/zarapp/git-ssh.sh /usr/bin/env git ls-remote -h )
DEBUG[d6b0ae0e] usage: git ls-remote [--heads] [--tags] [-u <exec> | --upload-pack <exec>]
DEBUG[d6b0ae0e]
DEBUG[d6b0ae0e] [-q|--quiet] [--exit-code] [--get-url] [<repository> [<refs>...]]
DEBUG[d6b0ae0e] Finished in 0.462 seconds with exit status 129 (failed).
cap aborted!
SSHKit::Runner::ExecuteError: Exception while executing on host 54.169.61.155: exit
/Library/Ruby/Gems/2.0.0/gems/capistrano-3.2.1/lib/capistrano/tasks/git.rake:28:in `exit'
/Library/Ruby/Gems/2.0.0/gems/capistrano-3.2.1/lib/capistrano/tasks/git.rake:28:in `block (4 levels) in <top (required)>'
/Library/Ruby/Gems/2.0.0/gems/sshkit-1.5.1/lib/sshkit/backends/abstract.rb:85:in `with'
/Library/Ruby/Gems/2.0.0/gems/capistrano-3.2.1/lib/capistrano/tasks/git.rake:27:in `block (3 levels) in <top (required)>'
/Library/Ruby/Gems/2.0.0/gems/sshkit-1.5.1/lib/sshkit/backends/netssh.rb:54:in `instance_exec'
/Library/Ruby/Gems/2.0.0/gems/sshkit-1.5.1/lib/sshkit/backends/netssh.rb:54:in `run'
/Library/Ruby/Gems/2.0.0/gems/sshkit-1.5.1/lib/sshkit/runners/parallel.rb:13:in `block (2 levels) in execute'
SystemExit: exit
/Library/Ruby/Gems/2.0.0/gems/capistrano-3.2.1/lib/capistrano/tasks/git.rake:28:in `exit'
/Library/Ruby/Gems/2.0.0/gems/capistrano-3.2.1/lib/capistrano/tasks/git.rake:28:in `block (4 levels) in <top (required)>'
/Library/Ruby/Gems/2.0.0/gems/sshkit-1.5.1/lib/sshkit/backends/abstract.rb:85:in `with'
/Library/Ruby/Gems/2.0.0/gems/capistrano-3.2.1/lib/capistrano/tasks/git.rake:27:in `block (3 levels) in <top (required)>'
/Library/Ruby/Gems/2.0.0/gems/sshkit-1.5.1/lib/sshkit/backends/netssh.rb:54:in `instance_exec'
/Library/Ruby/Gems/2.0.0/gems/sshkit-1.5.1/lib/sshkit/backends/netssh.rb:54:in `run'
/Library/Ruby/Gems/2.0.0/gems/sshkit-1.5.1/lib/sshkit/runners/parallel.rb:13:in `block (2 levels) in execute'
Tasks: TOP => git:check
我認為這是服務器上git的錯誤。我已經更新了它,但仍然沒有成功。 我ssh到服務器並嘗試直接運行git ls-remote -h
命令
DEBUG[d6b0ae0e] Command: ( GIT_ASKPASS=/bin/echo GIT_SSH=/tmp/zarapp/git-ssh.sh /usr/bin/env git ls-remote -h )
DEBUG[d6b0ae0e] usage: git ls-remote [--heads] [--tags] [-u <exec> | --upload-pack <exec>]
DEBUG[d6b0ae0e]
DEBUG[d6b0ae0e] [-q|--quiet] [--exit-code] [--get-url] [<repository> [<refs>...]]
它也說同樣的輸出。 capistrino 3是否運行了錯誤的命令語法或者還有其他問題?
git ls-remote
需要一個repo來操作。
這意味着:
git ls-remote -h
總是會失敗 但這會奏效:
git ls-remote -h /local/path/to/a/repo git ls-remote -h origin
正如OP Hemc 評論 :“ capistrano - git ls-remote -h
沒有git url ”確實指出了capistrano版本不匹配(2.x vs. 3.x)
請參閱“ 准備應用程序 ”
deploy.rb
是可以指定每個環境通用配置的位置,通常在此處指定存儲庫URL和要部署的用戶。
set :application, 'my app name'
set :repo_url, 'git@example.com:me/my_repo.git'
ask :branch, proc { `git rev-parse --abbrev-ref HEAD`.chomp }
git ls-remote
將使用repo_url
執行它。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.