2

gitosis をインストールしましたが、リポジトリで作業しているときに奇妙なことがあります。設定で私は持っています

[gitosis]

[group gitosis-admin]
writable = gitosis-admin
members = me@server me@laptop

[group prj1]
writable = prj1
members = me@laptop

/home/git/repositories に、空の git リポジトリを含むディレクトリ prj1.git を作成しました。

サーバーとラップトップから問題なく gitosis-admin を使用できますが、ラップトップでgit clone prj1 を実行しようとすると、次のように表示されます。

$ git clone git@server:prj1.git
Initialized empty Git repository in /Users/alec/temp/prj1/.git/
fatal: no matching remote head

よし、ラップトップからサーバーに prj1 をプッシュしましょう:

$ git push origin master:refs/heads/master
ERROR:gitosis.serve.main:Repository read access denied
fatal: The remote end hung up unexpectedly

どうしたの?

4

5 に答える 5

5

回答 1 の手順を実行した後も同じ問題が発生しました。

sudo chmod 755 /home/git/repositories/gitosis-admin.git/hooks/post-update

私のためにそれを解決しました。どうやら setuptools の古いバージョンでは、更新後のフックが実行不能になる可能性があります。このページを参照してください。

于 2010-05-29T09:30:49.667 に答える
5

あなたのラップトップで次のことを行うと、この問題は解決しますか?
git clone の代わりに:

  mkdir prj1
  cd prj1
  git init
  touch README
  git add .
  git commit -m "Added blank readme"
  git remote add origin git@server:prj1.git
  git push origin master

ebneterはコメントに次のように追加します。

これが機能する理由は、空の repo を複製できないためだと言うかもしれません。
(私のユーザーが定期的に発見するように...

そして、それはOPの質問を思い出させます:

...そして、空のgitリポジトリ/home/git/repositoriesでprj1.gitディレクトリを作成しました

これは理想的ではありません。
このSO の質問では、空のレポのクローン作成の問題について言及しています。

つまり、空のレポを複製しようとせずに、レポジトリを作成した後、1 つの無害なファイルを含む単純なレポをプッシュします。その後、空ではなくなり、クローンを作成できます。


それ以来、クリス・ジョンセンは次のようにコメントしています。

1.6.2 より後のすべての Git

(実際には2009年3月以来)

空のリポジトリを「クローン」できます。
(実際には、通常の初期化に加えてリモートをセットアップし、推定される最終的なマスターブランチの追跡構成を作成するだけなので、引用を怖がらせます)。

于 2009-08-19T07:04:23.547 に答える
1

新しいリポジトリにプッシュした後、同じメッセージに出くわしました:

git push -u origin master
ERROR:gitosis.serve.main:Repository read access denied
fatal: The remote end hung up unexpectedly

その理由は、gitosis-admin/keydir に 2 つの同じ ssh pub-keys (同じキー、別の名前) があったためです。

そのうちの1つを削除した後、新しいリポジトリにプッシュできます

于 2011-11-10T20:54:15.000 に答える
0

同じ問題がありましたが、その理由は、ローカルでgitosis.confを編集し、サーバーにコミットしなかったためです。

于 2011-12-24T10:33:35.140 に答える
0

私の場合、ssh クライアントは ~/.ssh から間違った秘密鍵を選択しました。

[gitosis] loglevel = DEBUG は、間違ったユーザーがログインしていることを確認するのに役立ちました。

于 2013-08-26T19:12:32.927 に答える