リポジトリからファイルを削除しますが、ローカルに保持します


369

リモートリポジトリに削除したいフォルダーがあります。削除したいのですが、フォルダをコンピュータに残しておきます



あなたがあなたの質問を書いているとき、提案された関連する質問を見てください-重複はおそらく最初の2つのうちの1つでした。
Cascabel


回答:


637
git rm --cached -r somedir

ディレクトリの削除をステージしますが、ディスク上の何も変更しません。これは次のようなファイルでも機能します。

git rm --cached somefile.ext

その後、somedir/またはファイルに追加somefile.extして.gitignore、gitがファイルを再度追加しようとしないようにすることができます。


24
次に、パスを.gitignoreに追加して、gitが後で追加しないようにします。
grossvogel

3
これにより、リモートからプルしたときにディレクトリが(ファイルに)削除されますか?
bstpierre 2010

彼が引っ張るときではありません。ファイルは、プルの自動マージプロセス中にローカルで削除されたままになります。その後、プッシュするとファイルがサーバー側で削除されます。
ウォルター・ムント

7
3番目のリモコンがある場合はどうなりますか?対応するファイルは将来のプルで削除されますか?これはかなり一般的なユースケースだと思うので、質問します。つまり、いくつかのファイルをリポジトリにチェックインし、正当な理由でリモート間で分岐することを後で確認します。すべてのローカルチェックアウトをそのままの状態に保ちながら、リポジトリからファイルを削除することで、これを解決します。
ボビー・ジャック

6
単一ファイルの場合、次のことができますgit rm --cached path/to/file
Travis Reeder

3

私はただ:

  • フォルダを作業ツリーの外に移動します
  • git rm フォルダ、変更をコミットします
  • 追加.gitignore(または.git/info/excludes)、変更をコミット
  • フォルダを戻す

8
これは良い解決策ではありません-非常に大きなディレクトリがある場合はどうでしょうか?
ioleo 2014

おそらく使用する必要があるgit rm -r
theUtherSide 2015年

1
@loostroは、それを別のブロックデバイスに移動しないでください。ほとんどのファイルシステムは、ファイルのiノードを更新するだけで、文字どおりディレクトリ全体を移動するわけではありません
648trindade
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.