web-dev-qa-db-ja.com

gitの「ファイルモード」とは何ですか?

地球上のすべての単一gitリポジトリに存在するものについては... filemodeに関する情報があまりないことは確かです。グーグルからの最初の100件の回答はいたるところにあり、このタイトルの質問は手渡されていません..だからここに行きます。filemodeとは何ですか?私にとっては、それはすべてのリポジトリにあります./git/configファイル、上部近く、ラ...

 [core]
    filemode = true

それは何ですか?どういう意味ですか?それは関係がありますか

    bare = false

これも本当に得られない... git狂人のようなを使用し、他の百万 gitの無限の、そして私見を知っている、 任意に合成された/半頭脳configパラメータは..しかしこれではない...私はそれが単純なものであると確信しています(おそらくパーミッションに関連するか、変更フラグがトリガされます) ?)ですので、設定の操作方法や、どのような効果があるのか​​を知っている場合は、知っておくとよいでしょう...

31
Alex Gray

Git bare repo( 詳細はこちら )はファイルモードとは関係ありません。
作業ツリーがないため、プッシュするために使用されます。これは、作業ツリーとプッシュしたものとの同期を維持する心配がないためです。

「偽物」ファイルとは何ですか?そして、「作業」ディレクトリを構成するものは何ですか?

「偽物」ファイルはありません。単なるリポジトリにはgitの管理ファイルと制御ファイルのみが含まれており、実際に操作および変更できるデータファイルは含まれていません。
レポが公開されていない場合、これらは「作業ディレクトリ」でチェックアウトされます。

git config manページ

core.fileMode

Falseの場合、インデックスと作業ツリー間の実行可能ビットの違いは無視されます。 FAT(File Allocation Table) のような壊れたファイルシステムで役立ちます。
見る - git-update-index

コマンドはcore.filemode構成変数。
実行可能ビットが信頼できないファイルシステムにリポジトリがある場合、falseに設定する必要があります。
これにより、コマンドは、実行可能ビットのみが異なる場合、インデックスに記録されたファイルモードとファイルシステム上のファイルモードの違いを無視します
このような不幸なファイルシステムでは、git update-index --chmod=

私にとっては、それはすべてのリポジトリにあります./git/configファイル、上部付近、

私もですが、Windowsでは常にそうです:

git config --local core.filemode
false

Gitは2つのファイルモードのみを記録することを忘れないでください:

  • 644
  • 755
38
VonC

filemode set trueは、ファイルモードのアクセス許可の変更が変更と見なされることを意味します。

bare set trueは、ディレクトリが作業ディレクトリではない(実際のファイルがない)ことを意味します。

9
cforbish