Git でファイルの変更の追跡を停止して無視するにはどうすればよいでしょうか? 質問する

Git でファイルの変更の追跡を停止して無視するにはどうすればよいでしょうか? 質問する

いくつかのファイルを含むプロジェクトをクローンしました。ローカルファイルが Git によって追跡される (またはパッチの作成時に呼び出される).csproj必要はありませんが、プロジェクトでは明らかに必要です。csproj

*.csprojLOCAL に追加しました.gitignoreが、ファイルはすでにリポジトリに存在します。

git status と入力すると、csproj追跡したりパッチを送信したりするつもりのない変更が表示されます。

ステータスを実行したとき (またはパッチを作成したとき) に変更が表示されないように、個人リポジトリからこれらのファイルの「追跡」を削除 (ただし、使用できるようにソースに保持) するにはどうすればよいでしょうか。

この状況に対処する正しい/標準的な方法はありますか?

ベストアンサー1

リビジョン管理から削除したい各ファイルを呼び出すだけgit rm --cachedで問題ありません。ローカルの無視パターンが正しい限り、これらのファイルは git status の出力に含まれません。

このソリューションではリポジトリからファイルが削除されるため、すべての開発者がファイルのローカル(リビジョン管理されていない)コピーを独自に維持する必要があることに注意してください。

git がこれらのファイルの変更を検出しないようにするには、次のコマンドも使用する必要があります。

git update-index --assume-unchanged [path]

おそらくあなたがやりたいこと:(以下から@Ryan Taylor の回答

  1. これは、ファイルまたはフォルダーの独自の独立したバージョンが必要であることを git に伝えるためのものです。たとえば、本番環境/ステージング環境の設定ファイルを上書き (または削除) したくない場合などです。

git update-index --skip-worktree <path-name>

完全な回答は次の URL にあります:http://source.kohlerville.com/2009/02/untrack-files-in-git/

おすすめ記事