1. ホーム
  2. git

[解決済み] このコミットから先のファイルへの変更を Git が追跡しないようにするにはどうしたらいいですか?

2023-03-16 13:50:29

質問

重要でないデフォルト値を持つデータベース設定ファイルを持っています。しかし、このファイルへの変更は、レポで追跡されるべきではない機密情報を含んでいます。

Git リポジトリの将来のプルには、デフォルトバージョンを含めたいのですが、どのユーザーによる変更も無視されます。

以下は、ローカルの設定を保持しますが、削除をリポジトリにプッシュするため、将来のプル時に問題が発生します。

cat "app/dir/config.file" >> .gitignore
git rm --cached app/dir/config.file

以下はその役割を果たしますが、レポへのプッシュを過ぎても持続しません。

git update-index --assume-unchanged app/dir/config.file

これは、機密情報周りのバージョン管理にはよくある要件のようですが、解決策が見つからないようです。

どのように解決するのですか?

いつものようにgithubに素晴らしいドキュメントがあります。

https://help.github.com/articles/ignoring-files#ignoring-versioned-files

該当するスニペットはこちらです。

<ブロッククオート

バージョン管理されたファイルを無視する

リポジトリ内のいくつかのファイルは頻繁に変更されますが、ほとんどコミットされません。通常、これらは編集される様々なローカル設定ファイルですが、決して上流にコミットされるべきではありません。Git では、これらのファイルを変更されていないと見なし、無視することができます。

  1. ターミナルで、Git リポジトリの場所に移動します。
  2. ターミナルで以下のコマンドを実行します。

git update-index --assume-unchanged path/to/file.txt

いったんこのような印をつけると、Git はそのファイルに対する変更を完全に無視します。を実行しても決して表示されません。 git status あるいは git diff であっても、コミットされることはありません。

Gitに再びファイルを追跡させるには、単純に

git update-index --no-assume-unchanged path/to/file.txt .