web-dev-qa-db-ja.com

git-空のフォルダを削除してその変更をプッシュする方法は?

空のフォルダをローカルで削除し、プルプッシュを介してリモートを共有する他の共同編集者にそれを行うにはどうすればよいですか?その意味では、フォルダはgitによって「追跡」されていないことは知っていますが、問題は残っています。

例えばファイルを別のフォルダーに移動し、(移動の)変更をコミットしました。

しかし、私は_git rm name「一致しない」と表示されるフォルダーgit rmdir nameは存在しません。

git clean -f folderしかし、それはどのように押し上げられますか?

ファイルを直接rmできますが、ディレクトリの削除を正しく行い、既存のフォルダーが削除されるようにプルするときにリポジトリにプッシュしてから他のユーザーにプッシュするにはどうすればよいですか?

61
Michael Durrant

簡単な答え:Gitはディレクトリを追跡しないため、ディレクトリに変更をプッシュ(追加、削除など)することはできません。

[〜#〜] faq [〜#〜] によると:

現在、gitインデックス(ステージング領域)の設計では、ファイルの一覧表示のみが許可されており、空のディレクトリを許可する変更を行う能力のある人は、この状況を改善するのに十分な配慮をしていません。

ディレクトリは、内部にファイルを追加するときに自動的に追加されます。つまり、ディレクトリをリポジトリに追加する必要はなく、ディレクトリ自体は追跡されません。

そのため、Gitに関する限り、空のディレクトリはもう存在しません。

私は、git clean -fdは、ディレクトリの削除をプッシュする必要を取り除きます。しかしながら、 git cleanは、削除したくない項目(まだコミットしていない新しいファイルを含む)を削除できるため、最初に使用する傾向がありますgit clean -fdnコマンドを使用した場合に削除される内容を確認します。

そのディレクトリをクリーンアップするために、仲間の開発者と話をせざるを得ないように見えます。

101
Jake Greene
git add --all
git clean -f -d
git commit -m "trying to remove folders"
git Push
8
Ekhtiar

空のフォルダを削除する

gitが空のディレクトリを追跡していないことがわかった調査の結果、gitで作成できない空のディレクトリ(フォルダ)を削除したかったため、削除できません。作業中のプロジェクトに空のディレクトリがある場合は、単にそれを削除する必要があります

rm -r folderName

Gitを関与させる必要はありません。この回答はローカルマシンリポジトリでのみテストされていることに注意してください。

0
Rida