この git プロジェクトに関わっているのは私だけです。ローカルの Ubuntu リポジトリでファイルを編集し、Bitbucket にプッシュして本番リポジトリにプルするたびに、編集したファイルが git によって -rwxrwxr-x 775 に変更されます。Apache はこれを好みません。
ローカル システム: Ubuntu Linux 上の git バージョン 1.8.1.2
本番システム: CentOS/Red Hat Linux 上の git バージョン 1.7.12
アクセス許可を 755 に修正したら、
git diff
また
git diff -p
それは何も示していません。
私のローカル リポジトリでは、パーミッションは 755 で、ファイルはすべて haws が所有しています。私の本番リポジトリでは、他のすべてのパーミッションは 755 のままで、contact.php を含むすべてのファイルは私のユーザー名によって所有されています。
ローカル リポジトリと本番リポジトリの両方で、この動作を停止するために次のように core.filemode を変更しました。
core.filemode = false
共同プロジェクトでこのような謎があったので、何が起こっているのかを知りたいです.
- このファイルのアクセス許可を変更する git の理由を確認するにはどうすればよいですか?
- どうすればgitに変更をやめさせることができますか?
ここでも解決策を見つけようとしました:プル時に Git がパーミッションを変更して無駄になるのを防ぎます。
私の最終的な解決策(VonCのガイダンスに感謝):
VonC の適切な説明のおかげで、サーバーにログインするたびに umask が 0002 に戻っていたことを勇気づけられました。設定する Linux ホスト
umask 0022
または記号表記を使用する(少し付加価値がある場合)
umask u=a,g-w,o-w
また
umask u=a,go-w
(ユーザーにはすべての権限を許可し、グループなどには書き込み権限を許可しない)
それは私の問題を解決しました。
- 以前に git config core.sharedRepository true を設定していましたが、それは私の問題ではなく、問題が解決したら設定を削除しました。