fatal: destination path 'xxx' already exists and is not an empty directory.の原因と解決方法【git clone】

Gitでgit cloneを使ってリポジトリを取得するときに、fatal: destination path 'xxx' already exists and is not an empty directory.のエラーが出て困ったことはありませんか?

この記事では、このエラーについて、以下の内容をわかりやすく解説します。

  • エラーの意味
  • なぜ発生するのか
  • 具体的な再現例
  • 3つの解決方法

fatal: destination path 'xxx' already exists and is not an empty directory.の原因

fatal: destination path 'xxx' already exists and is not an empty directory.のエラーは「git cloneしようとしているフォルダ名がすでに存在していて、しかも空ではない」場合に発生します。

Gitはgit clone時に「リポジトリ名のフォルダ」を作成します。そのため同じ名前のフォルダがあると衝突してgit cloneできません。

では実際に上記のエラーを出してみましょう。

例えば、次のようなコマンドでGitHubから「Hello-World」リポジトリをgit cloneします。

git clone https://github.com/octocat/Hello-World.git

すると、カレントディレクトリにHello-Worldというフォルダができます。

次に、もう一度同じコマンドを実行してみます。

git clone https://github.com/octocat/Hello-World.git

すると次のエラーが出ます。

fatal: destination path 'Hello-World' already exists and is not an empty directory.

fatal: destination path 'xxx' already exists and is not an empty directory.の解決方法

このエラーの解決方法は下記に示すようにいろいろあります。

  • Hello-Worldフォルダ本体を削除して、再度git cloneする
  • Hello-Worldフォルダの中身を空にして、再度git cloneする
  • Hello-Worldフォルダの名前を変更して、再度git cloneする

Hello-Worldフォルダ本体を削除して、再度git cloneする

rm -rf Hello-WorldHello-Worldフォルダ本体を削除して、再度git cloneします。コマンドを以下に示します。

rm -rf Hello-World
git clone https://github.com/octocat/Hello-World.git

すると、エラーが表示されずに、カレントディレクトリに、Hello-Worldフォルダが生成されます。最も簡単な解決方法です。

Hello-Worldフォルダの中身を空にして、再度git cloneする

rm -rf Hello-World/{,.}Hello-Worldフォルダの中身を空にして、再度git cloneします。コマンドを以下に示します。

rm -rf Hello-World/{*,.*}
git clone https://github.com/octocat/Hello-World.git

すると、エラーが表示されずに、カレントディレクトリに、Hello-Worldフォルダが生成されます。

Hello-Worldフォルダの名前を変更して、再度git cloneする

Hello-Worldフォルダの名前を変えて(例えばHello-WorldHello-World-subなど)、再度git cloneします。

git clone https://github.com/octocat/Hello-World.git

すると、エラーが表示されずに、カレントディレクトリに、Hello-Worldフォルダが生成されます。この場合、既存フォルダはHello-World-subフォルダとして残ります。Hello-World-subフォルダは必要なければ後で削除して OK です。

本記事のまとめ

fatal: destination path 'xxx' already exists and is not an empty directory.は、clone先のフォルダが既に存在していて空ではないときに起きるエラーです。

フォルダを削除する・空にする・名前を変更するなど、いずれかの方法で簡単に解決できます。

git cloneでこのエラーが出たときは、本記事の解決方法を参考に試してみてください。

お読みいただきありがとうございました。

スポンサーリンク