[解決済み] あるファイルに対する将来のリビジョンを git に無視させるにはどうしたらいいですか?
2022-04-20 15:29:29
質問
git リポジトリに含まれるファイルのデフォルトバージョンを作成しました。 誰かがリポジトリをクローンしたときに、このファイルのコピーを取得することが重要です。 しかし、後でこのファイルへの変更を無視するようにgitを設定したいと思います。
.gitignore
は、追跡されていないファイルに対してのみ機能します。
私の動機は、このファイルにはマシン固有の情報が含まれているからです。 私はデフォルト値を提供する一方で、人々がローカルで変更を加えることができるようにしたいのですが、それはオリジンリポジトリにプッシュバックされないので、新しい変更をプルしたときにマージの衝突を引き起こします。
私たちは一般的にかなり怠惰で
git add .
そのため、このファイルを無視するように git に指示しなければ、このファイルへの変更がコミットされてプッシュされてしまうことは間違いありません。
まとめると
-
ファイルを作成し、それを
default_values.txt
このリポジトリは、私の git リポジトリに追加され、誰かがそのリポジトリをクローンしたときに含まれるようになります。 -
git add .
を追加してはいけません。default_values.txt
をコミットしてください。 - この動作は、リポジトリのクローンにも引き継がれるはずです。
解決方法は?
他の多くの方がおっしゃっているように、現代の良い解決策としては
git update-index --skip-worktree default_values.txt
これにより、ローカルとアップストリームの両方で、そのファイルへの変更を無視することになります。
git update-index --no-skip-worktree default_values.txt
でスキップマークがついたファイルの一覧を取得することができます。
git ls-files -v . | grep ^S
とは異なり
--skip-worktree
は、その
--assume-unchanged
のステータスは、上流の変更がプルされると失われてしまいます。
関連
-
[解決済み] Git で直近のローカルコミットを取り消すには?
-
[解決済み] Gitブランチをローカルやリモートで削除するには?
-
[解決済み] コミット前に 'git add' を取り消すにはどうすればよいですか?
-
[解決済み] リモートのGitブランチをチェックアウトするには?
-
[解決済み] 現在のGit作業ツリーからローカル(未追跡)ファイルを削除する方法
-
[解決済み] Git が追跡したファイルを .gitignore に登録したまま「忘れる」ようにするにはどうしたらいいですか?
-
[解決済み] まだプッシュされていない Git マージを元に戻す
-
[解決済み] Git でブランチからコミットを削除する
-
[解決済み】"git pull" でローカルファイルを強制的に上書きするには?
-
[解決済み】ローカルのGitブランチの名前を変更するには?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】ファイルのアンリンクに失敗しました。もう一度試してみるべきですか?
-
[解決済み】git-mergeの-dry-runオプションはありますか?
-
[解決済み】なぜ「git commit」は私の変更を保存しないのですか?
-
[解決済み】未マージファイルがあるため、Gitマージができない
-
[解決済み] GIT_DISCOVERY_ACROSS_FILESYSTEM が設定されていない。
-
[解決済み] GitのFETCH_HEADとはどういう意味ですか?
-
[解決済み] Gitのフォルダ構造で変更・追加されたファイルのみをエクスポートする機能
-
[解決済み] リモートブランチにプッシュできない、ブランチに解決できない
-
[解決済み] Git が追跡したファイルを .gitignore に登録したまま「忘れる」ようにするにはどうしたらいいですか?
-
[解決済み] Git - 'assume-unchanged'と'skip-worktree'の違い