git:ファイルのアクセス許可の変更を無視するようにgitを設定するにはどうすればよいですか


21

Linuxサーバーにいくつかのgitプロジェクトがあります。

MacとLinuxを使用してプログラミングを行います。問題は、すべてのファイルが、私は私のMacで私のコードを引くたびので、umaskを0755にあると思われるので、MACファイルシステムの権限は本当によくのlinuxのように動作しないということであるgit status私が使用したときにすべての私のファイルが変更されていることを示しgit diff、それを唯一の変更がumaskにあることを示しています。umaskの変更を保存してチェックしないようにgitに指示するにはどうすればよいですか?

ありがとう!


1
私は... OS XがUnixスタイルのパーミッションをサポートしていますかなり確信している
grawity

1
umaskと権限は同じものではありません。ここで何をしているのか本当にわかっていますか?
ネンライボウコーザー14

回答:


28

core.fileMode構成プロパティをに設定しますfalse。次のコマンドでこれを簡単に行うことができます。

git config core.fileMode false

これはリポジトリごとの設定ですか、これをグローバルに動作させることは可能ですか?
acme

2
@acme:すべてのGitの設定と同様に、ユーザー、またはシステム全体につき、余分なスイッチを渡していない、ことで、リポジトリ毎のそれを設定することができ--global、または--systemそれぞれ。詳細git help configを参照してください。
パッチ

ありがとう!しかし、グローバルに設定しても、この設定が新しいリポジトリに自動的に追加されるわけではなく、ローカルマシン上の設定にすぎませんか?
acme

@acme:はい、オプションを設定する--globalと、ユーザーアカウントでローカルにアクセスしたリポジトリのすべての操作に影響します。他の人には影響しません。特定のリポジトリのすべてのユーザーに設定するには、全員がプッシュするサーバーでリポジトリごとの設定を切り替える必要があります。
パッチ

1

これを切り替える小さなシェルスクリプトがあります

cat〜/ bin / git-ignore-chmod-toggle

#!/bin/bash
# Copyright 2015 Alexx Roche, MIT license.
# based on http://superuser.com/a/261076

gitCHMODstate=$(git config --get core.fileMode)

# toggle with git config core.fileMode true 

if [ $gitCHMODstate == 'true' ];then
    echo "git now ignores file mode (chmod)"
    git config core.fileMode false
else
    echo "git not looks for files modes changed with chmod"
    git config core.fileMode true
fi

これにより、gitを切り替え、他の変更を確認してからすぐに元に戻すことができます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.