Gitインデックスからファイルのみモードを削除する方法

Gitインデックスからファイルのみモードを削除する方法

私はgitリポジトリを初期化し、後でgitが777や644のようなファイルモードにインデックスを付けました。 「実際の」変更履歴(その内容の変更履歴)を保存しながら、そのファイルのgitインデックス(記録)のファイルモード「記録」をどのように削除できますか?

答え1

core.fileModefalseに設定すると、部分的にこれを達成できます。

git config core.fileMode false

これにより、実行可能ビット(およびそのビットのみ)が無視されます。

引用するgit-config出荷書類ビーチ:

Gitに、ワークツリー内のファイルの実行可能ビットを尊重するかどうかを伝えます。

一部のファイルシステムでは、実行可能とマークされたファイルをチェックアウトしたり、実行可能ビットを含む実行不可能ファイルをチェックアウトすると、実行可能ビットが失われます。子クローン(1)または子の初期化(1)ファイルシステムを調べて実行ビットを正しく処理することを確認し、この変数は必要に応じて自動的に設定されます。

ただし、リポジトリがファイルモードを正しく処理するファイルシステムにあり、作成時にこの変数がtrueに設定されているが、後でファイルモードを持たない他の環境からアクセスできる可能性があります(たとえば、CIFSマウント、CygwinにアクセスするとWindows用GitまたはEclipseを使用してリポジトリを作成します。この場合、この変数を次のように設定できます。間違った。バラより子更新インデックス(1)

デフォルトはtrueです(core.filemodeが設定ファイルに指定されていない場合)。

これが良いアイデアかどうかは別の議論です...

関連情報