Gitリポジトリのクローンを作成するには、リポジトリの名前が必要です。多くのリポジトリで作業している場合、すべての異なる名前を覚えるのは難しいため、いくつかのgitコマンドを使用してリモートサーバー上のすべての既存のリポジトリを一覧表示できるかどうか疑問に思っています。
Git-daemonをホストしているマシンへのシェルアクセスが必要で、git-daemonの呼び出しに使用されるパラメーターを確認するか、または GitWeb と呼ばれるGit Webフロントエンド(リポジトリブラウザー)を使用します。
この既存の 質問 も参照してください
他の方法が1つありますが、会社のサーバー管理者の支援が必要です。 Gitには、GitWebと呼ばれる閲覧可能なWebフロントエンドがあり、gitが提供するすべてのプロジェクトを表示するように構成できます。
詳細はGitWebで説明されていますREADME-対象の設定キーは「GITWEB_PROJECTROOT」と呼ばれます:
GITWEB_PROJECTROOT The root directory for all projects shown by gitweb. Must be set correctly for gitweb to find repositories to display. See also "Gitweb repositories" in the INSTALL file for gitweb.
多分あなたはあなたとあなたの管理者と話し合うことができます-gitwebはすべての開発者にとって大きな利益になることができます。
私の知る限り、これはgit-daemonを実行しているマシンで行う必要があります。 git-daemonが呼び出された場所の引数を確認するか、/ etc/inetd.confを確認する必要があります
リモートマシンへのシェルアクセスがあったため、ターミナルから実行してすべてのリモートリポジトリを一覧表示できる小さなfabric
スクリプトを作成しました。
#!/bin/python
from fabric.api import run, env
from fabric.colors import green
env.hosts = ['<hostname>'];
env.user = '<user>';
env.password = '<password>';
def lr():
"Lists all remote repositories"
print(green("listing remote repos"))
run('cd /var/git; ls -al')
端末から次のコマンドを発行して、すべてのリモートリポジトリを一覧表示できます。
fab lr
これは、これらのリポジトリへのアクセス方法に大きく依存しているため、実際には単純な万能の答えはありません。
git-daemon
やgitweb
によって提供されている場合は、configを調べて、リポジトリが保持されている場所を確認し、そのディレクトリの内容を一覧表示できます。HEAD
(例:locate HEAD | grep \/HEAD$
)という名前のファイルを含むシステム上のすべてのディレクトリを検索することでそれらを見つけることができるはずですが、これにより誤検知が発生する可能性があり、ローカルの作業ディレクトリであり、共有されていないか、別のソースから複製されました。