git reset --hard origin/master
パーミッションのみが変更された場合でもファイルをチェックするのではなく、各ファイルの実際のコンテンツが変更された場合にのみ、ファイルをチェックアウトするようにしようとしています。
git reset に渡すことができるパラメーターはありますか、それともスクリプトでしか解決できないものですか?
git reset --hard origin/master
パーミッションのみが変更された場合でもファイルをチェックするのではなく、各ファイルの実際のコンテンツが変更された場合にのみ、ファイルをチェックアウトするようにしようとしています。
git reset に渡すことができるパラメーターはありますか、それともスクリプトでしか解決できないものですか?
ここで説明されているように設定core.fileMode
してみてください(docs)(うまくいくはずです)。これにより、ハード リセット時に Git がアクセス許可の変更を無視するようになります。ここで、Git がファイルを読み取ることができなかった場合 (たとえば、パーミッションを 000 に設定した場合)、ハード リセットを行うと、コミットされた元のパーミッションが復元されることがわかりました。false
git config core.fileMode false
興味深いかもしれない別の考えは、リポジトリ内のすべてのファイルのアクセス許可を必要なものに設定するフックを作成することです。これにより、危険なアクセス許可を持つ新しいファイルを誤って残していないという保証が得られる場合もあります。