web-dev-qa-db-ja.com

CygwinとファイルパーミッションのGit

Cygwinのgitが常にファイルパーミッションと混同されるのはなぜですか?ファイルは変更されませんでした。 TortoiseGITはそれが変更されたとは考えていません。 DOSGitはそれが変更されたとは考えていません。

$ git diff README.md
diff --git a/README.md b/README.md
old mode 100644
new mode 100755

$ ls -l README.md
-rwx------+ 1 Chloe None 824 Sep  4 00:55 README.md

$ which git
/usr/bin/git

$ git --version
git version 1.8.3.4

$ uname -a
CYGWIN_NT-6.2-WOW64 xps 1.7.25(0.270/5/3) 2013-08-31 20:39 i686 Cygwin
3
Chloe

作業ディレクトリのREADME.mdにはユーザーの実行権限が設定されているようですが、インデックスには設定されていないため、違いが報告されています。

これを試して、それが役立つかどうかを確認してください。

git config core.filemode false

たとえば、私はあなたの状況のように見えるものを再作成しました、そしてこれが私が得るものです(core.filemodeの両方の設定で):

$ git config core.filemode true

$ git diff foo.txt
diff --git a/foo.txt b/foo.txt
old mode 100644
new mode 100755

$ ls -l foo.txt
-rwx------+ 1 david Domain Users 0 Jul  2 12:40 foo.txt*

$ git config core.filemode false

$ git diff foo.txt

$

警告、CygwinとGitの異なるバージョンを使用しています:

$ which git; git --version; uname -a
/usr/bin/git
git version 1.7.9
CYGWIN_NT-6.1-WOW64 XXXXXX 1.7.30(0.272/5/3) 2014-05-23 10:36 i686 Cygwin
2
David