2012-03-27 16 views
1

私自身のサーバーでgitをセットアップし、そこに私のプロジェクトをcapistranoでプッシュしようとしています。nameofrepo.gitはgitリポジトリではありません

それはまだ

致命的に言う:「/home/gitolite/repositories/iminrails.gitは」gitリポジトリ こと には表示されませんが、私は、サーバー上のディレクトリのリポジトリにiminrails.gitを見ることができます。 私はサーバー上で私のレポをプッシュする方法を試しましたが、私はまだこのエラーが発生しています。

[email protected]:/var/www/iminrails$ scp -r /tmp/iminrails.git [email protected]:/home/gitolite/repositories/ 
Enter passphrase for key '/home/ofer/.ssh/id_rsa': 
bad command: scp -r -t -- /home/gitolite/repositories/ 
lost connection 
[email protected]:/var/www/iminrails$ git push origin master:refs/heads/master 
Enter passphrase for key '/home/ofer/.ssh/id_rsa': 
fatal: '/home/gitolite/repositories/iminrails.git' does not appear to be a git repository 
fatal: The remote end hung up unexpectedly 
+0

を実行する存在

されています。これはプッシュエラーの前に修正する必要があります。 – JoePasq

+0

'ssh'でサーバにアクセスし、' git init'でリポジトリを作成してこれらの権限があることを確認してください。 –

答えて

0

あなたはgitoliteアカウントでSSHをUSNGているWHE、あなたがforced commandを使用するには、SSHの設定を使用します。
あなたがauthorized_keysファイルを見ると、あなたがこのようなエントリが表示されますGitolite and ssh

を参照してください(私はもちろんの両端を切り落とし、彼らは非常に長い行をしている):

command="[path]/gl-auth-command sitaram",[more options] ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA18S2t... 
command="[path]/gl-auth-command usertwo",[more options] ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEArXtCT... 

まず、このファイルのどの公開鍵が着信ログインと一致するかを調べます。それは暗号のものなので、私はそれには入りません。
一致が見つかると、その行で指定されたコマンドが実行されます。たとえば、ログインした場合は[path]/gl-auth-command sitaramが実行されます。
最初に注意しなければならないのは、このようなユーザーは「シェルアクセス」を得られないということです。

しかし、コマンドを実行する前に、sshdは、ワークステーションが送信した実際のgitコマンドを含むSSH_ORIGINAL_COMMANDという環境変数を設定します。これは、あなたがコマンド=パーツを認証キーファイルに持たなかった場合に実行されるコマンドです。

発想は単純です:

  • なし対話型シェルアクセス
  • のgitコマンドのみ(ので、あなたのscpコマンドはないのgitコマンドである)、それは拒否されます。リモートGitoliteサーバに既存のローカルのGitリポジトリをコピーする必要がある場合のセクションで説明したよう

、「moving pre-existing repos into gitoliteは」

レットがレポ新ブランドとして、それを作成するgitolite見ます「adding users and repos」にある。

ワークステーションのクローンにcdします。
すべてのブランチが正しいこと、余分なもの、 "temp"ブランチなどがないことを確認してください。今、あなたがプッシュしようとする前であっても、あなたの最初のコマンドが失敗しているこれら二つのコマンド

git push --all [email protected]:reponame 
git push --tags [email protected]:reponame 
関連する問題