質問: Git初心者です。 学習の1つとして「Git をはじめからていねいに」を行っています。 その中の9番「みんなでつかう - ベアリポジトリとクローン,リモートリポジトリ」で、自身が作ったリポジトリを仮のリモートリポジトリとするため clone(bare) 。 その後、その仮のリモートリポジトリを自分のリモートリポジトリとするため fetch する作業があるのですが、そこで下記のようなエラーがでて先にすすむことができません。 > > fatal: 'shared_repo.git' does not appear to be a git repository fatal: > > Could not read from remote repository. > > > Please make sure you have the correct access rights and the repository > > exists. > > > この原因はわかるでしょうか。
回答: 質問とコメントの文面とリンク先のドキュメントから推測すると、 `/Users/MBP` ディレクトリ以下に次の3つのディレクトリが存在する状況かと思います。 * `takashis_workspace` (最初に作成したリポジトリ。remoteリポジトリ設定無し) * `shared_repo.git` (`takashis_workspace` をcloneしたbareリポジトリ) * `yuusukes_workspace` ( `shared_repo.git` をcloneしたリポジトリ) この状態から、 `takashis_workspace` に対して、 remoteリポジトリを設定する作業があります。 > > たかしのほうからも「みんなで触るリポジトリ」に対して変更を反映できたりそこから変更を取得してきたりできるように、remote リポジトリを設定しておきましょう。remoteリポジトリを追加するためには、`git remote add <リモートリポジトリの名前> <リモートリポジトリの場所>` です。 > > > > ``` > $ git remote add origin path/to/shared_repo.git > > ``` > > このコマンドを実行した場所は `/Users/MBP/takashis_workspace` だったかと思います。その場合、実際に実行すべきコマンドは ``` $ git remote add origin ../shared_repo.git # 相対パス指定 ``` あるいは ``` $ git remote add origin /Users/MBP/shared_repo.git # 絶対パス指定 ``` になります。 今回想定通り動作していないのは、 ``` $ git remote add origin shared_repo.git ``` という存在しない場所を指定してしまったためでしょう。 `origin` が指すリポジトリの場所を修正すればドキュメントの通りに戻ります。 やり方は複数種類ありますが、一旦 `origin` の間違った設定を削除して正しい値を設定し直すのがわかりやすいかと思います。 具体的には、 `/Users/MBP/takashis_workspace` ディレクトリで次を実行します: ``` $ git remote rm origin $ git remote add origin ../shared_repo.git ``` リポジトリを明示する方法 もありますが、この場合 `origin` の設定が誤ったままなので、以降のドキュメントの説明通りに動作しないと思います。