git-upload-packコマンドの場所を指定して、リモートリポジトリーをクローンする
「git-upload-pack」コマンドの場所を指定して、「リモートリポジトリー」をクローンします。git-upload-packが見つからない
リポジトリーをクローンする際、サーバー側で「git-upload-pack」コマンドを使用します。SSHプロトコルでリポジトリーをクローンする時に、「git-upload-pack」コマンドがあるフォルダーにパスが設定されていないと、クローンに失敗します。
以下は、エラー例です。
ubuntu@ubuntu-vb-1410:~/ドキュメント/git$ git clone ssh://192.168.56.10/~/git/mySharedProject myCloneProject
Cloning into 'myCloneProject'...
ubuntu@192.168.56.10's password:
bash: git-upload-pack: コマンドが見つかりません
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
Cloning into 'myCloneProject'...
ubuntu@192.168.56.10's password:
bash: git-upload-pack: コマンドが見つかりません
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
もしパスが設定されていない場合は、「git-upload-pack」コマンドの場所を指定してクローンを実行します。
サーバー側の「git-upload-pack」コマンドの場所を指定してください。
Ubuntuの場合、「git-upload-pack」コマンドは「/usr/bin/git-upload-pack」にあります。
オプションの説明
「リモートリポジトリー」のクローン後、チェックアウトを行わないようにするには、以下のオプションを指定します。ロングオプション | ショートオプション | オプションの値 |
---|---|---|
--upload-pack | -u | コマンドのパス |
コマンドのパス
「git-upload-pack」コマンドのパスを指定します。リモートリポジトリーのクローン例
「git-upload-pack」コマンドの場所を指定して、「リモートリポジトリー」をクローンする例です。1.ローカルリポジトリーの配置場所
ここでは例として、「~/ドキュメント/git」フォルダー内に「myCloneProject」フォルダーを作成してもらい、「myCloneProject」フォルダー内にリポジトリーをクローンします。クローン元の「リモートリポジトリー」は、「ssh://192.168.56.10/~/git/mySharedProject」を指定します。
ここでは、予めSSHサーバ及びSSHクライアントのインストールや設定を行っており、ユーザー認証は「ユーザー名 + パスワード」で行います。
2.カレントディレクトリーの移動
「端末」を起動し、カレントディレクトリーを「~/ドキュメント/git」に移動します。3.コマンドの実行
「リモートリポジトリー」をクローンします。以下のコマンドを実行します。
ポイントは、赤字の箇所です。
git clone --upload-pack /usr/bin/git-upload-pack ssh://192.168.56.10/~/git/mySharedProject myCloneProject
4.パスワードの入力
サーバーにログインするユーザーのパスワードを入力します。5.コマンドの実行結果
以下のように、「リモートリポジトリー」がクローンされます。6.フォルダーの確認
「Nautilus」を起動し「~/ドキュメント/git」フォルダーを見ると、以下のように「myCloneProject」フォルダーが作成されています。7.myCloneProjectフォルダーの確認
「myCloneProject」フォルダーを開くと、クローンされたリポジトリーが配置されています。「.git」フォルダーが、「Gitディレクトリー」です。
「myCloneProject」フォルダーが、「ワーキングディレクトリー」です。
「test.txt」は、「sub1」ブランチからチェックアウトされたプロジェクトのファイルです。