git: nasıl dosya izin değişiklikleri görmezden git git yapılandır


21

Linux sunucusunda bazı git projelerim var.

programlamamı yapmak için Mac ve linux kullanıyorum. Sorun mac dosya sisteminin izinleri gerçekten tüm dosyalar böylece linux gibi iyi çalışmıyor olmasıdır Umask 0755. üzerine benim mac kodumu çekin zaman bu kadar, gibi görünüyor git statusi kullandığınızda gösterileri Tüm dosyalarım değiştirildiğini ve git diffonu tek değişimin umask'ta olduğunu gösterir. git'e umask değişikliklerini kaydetmemesini ve kontrol etmemesini nasıl söylerim?

Teşekkürler!


1
OS X'in Unix tarzı izinleri desteklediğinden eminim ...
saat

1
umask ve izinler aynı şey değil. Burada ne yaptığını gerçekten bildiğinden emin misin?
Marnen Laibow-Koser 22:14

Yanıtlar:


28

core.fileModeConfiguration özelliğini ayarlayın false. Bu komutla bunu kolayca yapabilirsiniz:

git config core.fileMode false

Bu depo başına bir ortam mı yoksa bu işi küresel olarak yürütmek mümkün mü?
12'de acme

2
@acme: Bütün git ayarları gibi kullanıcı veya sistem çapında başına, hiçbir ekstra anahtarı geçirerek tarafından, başına depoya ayarlayabilirsiniz --globalveya --systemsırasıyla. Detaylar git help configiçin bakınız.
Yamalar

Teşekkürler! Ancak genel olarak ayarlamak bu ayarı otomatik olarak yeni depolara eklemiyor, bu sadece yerel makinemdeki bir ayar mı?
22'de

@acme: Evet, --globalyerel olarak kullanıcı hesabınızla erişilen herhangi bir depodaki tüm işlemleri etkileyen bir seçenek belirleyerek . Başka kimseyi etkilemez. Belirli bir havuzdaki tüm kullanıcılar için ayarlamak için, sunucunun herkesin zorladığı sunucudaki ayar başına geçiş yapmanız gerekir.
Yamalar

1

Bunu değiştirmek için küçük bir kabuk betiğim var

cat ~ / bin / git-yoksay-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

Bununla gidip geçiş yapabilir, diğer değişiklikleri kontrol edebilir ve ardından hızlıca tekrar devreye girebilirim.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.