2016-03-22 12 views
0

faviconを更新しましたので、既存のfavicon.icoファイルを新しいfavicon.icoファイルに置き換えなければなりませんでした。明らかに名前が同じだからGitは何かが変わったとは思わない。コミットの一部として強制的にインクルードする方法はありますか?Gitで変更されていないと思われるファイルを含めることはできますか?

+0

名前が同じでも、変更されたファイルを知っている必要があります。本当に別のファイルであると確信していますか? 'git status'はファイルを変更したものとして表示しませんか? –

+0

2つのfavicon.icoファイルのハッシュを比較しましたか(gitは同じですか)? –

+0

これは、バージョン管理システムの主な機能です。*** gitのようなものです。ファイルの名前が同じであっても、ファイルの違いに気付いてください。あなたは間違ってsthをしたにちがいありません。 – PerlDuck

答えて

5

gitは、ファイルが変更されたことを検出するためのファイル名の変更に依存しません。 It uses information returned by lstat.

どういうわけか、lstatが返すファイルを変更せずにファイルの内容を変更した場合、gitはそれが変更されていないとみなします。修正は、lstatデータを変更するためのファイル(例:touch favicon.ico)をtouchに送信するだけです。

Gitはまだファイルはあなたtouchそれの後に変更されていないと考える場合は、実際にファイルの内容を変更していない、またはファイルは無視されます(.gitignoreによって)、またはあなたが無視する他の方法ではgitに語ったのいずれかファイルに変更します(例:git update-index --assume-unchanged)。

0

名前が変わらなくても、このようなファイルの変更に気付くはずです。 Gitは、Linux上でファイルの権利を変更するだけでも気付く。そのため、再帰的に使用する場合は、chmodchownに注意する必要があります。ただし、これは--assume-unchangedオプションを使用した場合に発生する可能性があります。ただし、これは特定のファイルに対して停止することができます。

git update-index --no-assume-unchanged path/to/file 
+0

異議申し立て! ;-) gitが認識する唯一の属性はx(実行可能)フラグです。 Gitは他のもの(rwなど)を気にせず、どちらも所有権を記録しません。 – PerlDuck