web-dev-qa-db-ja.com

Gitはディレクトリを削除します

GitHubにリポジトリを持っています( http://github.com/hrickards/PHP-Crypto )私と他のいくつかのプロジェクトが取り組んでいます。私の開発環境はAptana Studioです。Aptanaは基本的にEclipseであるため、EGitプラグインを使用します。今日、デザイナーはウェブサイト用のHTMLとCSSを、imgという名前のフォルダー内の画像とともに送信しました。以前は、イメージはimagesというフォルダーにありました。それを何も考えず、CSSとHTMLを更新するのが面倒なので、画像をimgディレクトリに保持してGitにコミットしました。ただし、GitHub Webインターフェイスには、imgディレクトリとimagesディレクトリの両方が表示され、imagesディレクトリは空です。 git rm -r imagesgit rm images、さらにはmkdir images; git add images; git rm -r imagesで画像ディレクトリを削除しようとしましたが、何を試しても同じ結果が得られます:fatal: pathspec 'images' did not match any files

画像を削除する方法についてアドバイスを受けた人はいますか、それともGitなどを誤解していますか?

39
hrickards

Gitはディレクトリに関する情報を保存せず、ディレクトリ内のファイルのみを保存します。したがって、ディレクトリ自体を追加または削除することはできません。 git add imagesと言うと、Gitはそのディレクトリ内のすべてのファイルを追加します(無視リストと一致しません)。

一般に、空のディレクトリを作成する唯一の方法は、実際にファイル(通常は.gitignoreなどの隠しファイル)が含まれている場合です。

GitHubにimagesディレクトリが表示されると言いましたが、リンク先のリポジトリには表示されません。ディスク上の空のディレクトリだけでなく、そこにあると確信していますか?ディスク上の単なる空のディレクトリの場合は、rm imagesを使用して削除できます。 Gitはそれについて知る必要はありません。

41
Brian Campbell

これは私が使用するものであり、あなたも同様にしたいと思うでしょう。他の答えに近いですが、ローカルファイルを変更しないようにgitに指示します。

git rm -r -f --cached DirectoryName
  • -r:再帰的
  • -f:力
  • --cached:インデックス(ステージング領域)にのみ適用されます。 Gitはローカルコピーをそのままにします。
51
Sk606

これを試して:

git rm -r -f DirectoryName
38
nizar ouerghi

リンクされたGitHubリポジトリには、imagesディレクトリが表示されません。

Gitは技術的な理由で空のディレクトリを保存しないため、rm imagesそして、ローカルディレクトリ階層から画像ディレクトリを削除します。

3
Andrew