Gitリポジトリから既存のファイルを削除する


回答:


143

一度に完全な答えを出すだけです:

  1. klemensから:.gitignoreリポジトリ内の不要なファイルの上にあるファイルにファイルを追加する必要があります。すなわち

    $ cd $ cat >> .gitignore development.log Cd

  2. mから。narebski:次に、 " git rm --cached <file>を実行してからこの削除をコミットする"ことにより、リポジトリからファイルを削除する必要があります。

リポジトリをそのファイルを追跡したことがないかのように見せたい場合も、履歴内のすべてのコミットに対して新しいコミットを作成するだけでなく、相互運用性を厄介な方法で破壊するため、はるかに複雑で非常に推奨されません。あなたのリポジトリを複製した他の人々の間で、しかしそれらはまたそれらのコミットのすべてをテストされないままにします(コミットを行う前にあなたがコミットをテストすると仮定します)。

その警告を念頭に置いて、それがあなたの目標である場合にあなたが探しているツールはですfilter-branch。最初の例は、まさに私が説明していることを実行します。


3
git rm --cachedを使用すると、ブランチからそれが削除されただけでなく、別のシステムにプルすると、そのシステム上のファイルが物理的に削除されます。何が起こっているのでしょうか?
biagidp 2010年

2
上記への対応:変更をプルする前に代替システムで.gitignoreを設定していなかったため、削除によってローカルコピーが削除されたことが問題であると思います。少なくとも理論だこと
biagidp

53

ファイルの追跡を停止するには、単にを使用しますgit rm --cached <filename>

ただし、ここで他の人が指摘しているように、.gitignoreにファイルを追加すると、後で誤って再度追加するのを防ぐことができます。


1

gitignoreファイルを追加します。

http://git-scm.com/docs/gitignoreを参照してください


13
これは答えの半分にすぎません。.gitignoreエントリは、すでに追跡されているファイルには適用されません。
CBベイリー

10
2番目の部分はgit rm --cached <file>、この削除の準備です。
JakubNarębski、2010年

1
現在の.gitignoreファイルに従って現在追跡されているすべてのファイルを再評価するgitの簡単なコマンドがないのはなぜですか?...それともあまりにも常識を働かせているのですか?:p
アレクサンダー-モニカを復活
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.