2016-07-11 38 views
1

Vor einiger Zeit arbeitete ich in einem Projekt von mehreren Leuten entwickelt. Einer der Leute, bewusst oder nicht, änderte den chmod einige Dateien. Wenn die Änderungen in das Repository pushen, verursacht jedes Mal ein anderer Download den Code von dort, beim Start wurden viele Dateien als "geändert" markiert. Ich habe viel Zeit verloren, um einen Grund zu finden. JetztGit Repo Standard ignorieren Dateien Berechtigungen

bei der Einnahme von der Repo-i jedes Mal schreibt in Terminal

git config core.fileMode false 

die Änderungsdateiberechtigungen zu ignorieren. Ich weiß, dass ich das in globalen Git-Konfigurationsdatei einstellen kann, aber ich würde etwas mehr machen. Ich möchte, dass diese Option im Projekt-Repository als Standard festgelegt wird und jeder, der dieses Repository herunterlädt, wird git config so eingestellt, dass die Erlaubnis für Dateien ignoriert wird.

Haben Sie eine Idee, wie erreichen Sie das?

Antwort

1

Git ignoriert alle anderen Berechtigungsbits als das ausführbare Bit (Mit anderen Worten, Datei- und Verzeichniseinträge von git's tree-Objekten haben eine Berechtigungsmaske von entweder 755 oder 644 - sonst nichts). core.fileMode ist nur über das ausführbare Bit. Normalerweise sollten diese ausführbaren Bits beachtet werden, außer auf einigen seltsamen Dateisystemen. In diesem Fall sollte der Benutzer core.fileMode selbst ausschalten.

Von git help config:

core.fileMode Tells Git, wenn die ausführbare Bit von Dateien im Arbeitsbaum geehrt werden soll.

 Some filesystems lose the executable bit when a file that is marked as executable is checked 
     out, or checks out an non-executable file with executable bit on. git-clone(1) or git-init(1) 
     probe the filesystem to see if it handles the executable bit correctly and this variable is 
     automatically set as necessary. 

     A repository, however, may be on a filesystem that handles the filemode correctly, and this 
     variable is set to true when created, but later may be made accessible from another environment 
     that loses the filemode (e.g. exporting ext4 via CIFS mount, visiting a Cygwin created 
     repository with Git for Windows or Eclipse). In such a case it may be necessary to set this 
     variable to false. See git-update-index(1). 

     The default is true (when core.filemode is not specified in the config file).