Wie erzwinge ich benutzerdefinierte Berechtigungen für Dateien, die mit dem Befehl „Git Checkout“ erstellt wurden?

Wie erzwinge ich benutzerdefinierte Berechtigungen für Dateien, die mit dem Befehl „Git Checkout“ erstellt wurden?

Ich brauche per git checkoutBefehl erstellte Dateien, um benutzerdefinierte Berechtigungen zu haben.

Auch mit core.sharedrepository=0777dieser Einstellung erstellt Git Arbeitsbaumdateien mit 0644 Berechtigungen. Ich möchte aber, dass es mindestens 0664 sind, damit jemand aus der Gruppe in sie schreiben kann (es wäre auch sehr gut, eine benutzerdefinierte Eigentümergruppe anzugeben)

Die rekursive Anwendung von chown/chmod könnte zwar funktionieren, ist aber eher der letzte Ausweg und eine Verschwendung von Ressourcen.

Antwort1

Verwenden Sie nicht nur Git, um die Dateiberechtigungen eines installierten Baums zu verwalten.

Git ist ein Einzelbenutzer. Es verfolgt Dateieigentümer und Berechtigungen nicht ausreichend, um ein Mehrbenutzersystem zu sichern. Selbst wenn ein einfacher Baum core.sharedrepositorymit einem Benutzer für Ihren Anwendungsfall ausreichen würde, haben Sie Schwierigkeiten, es dazu zu bringen, das zu tun, was Sie wollen. Möglicherweise verwendet es immer noch den Standardwert umask?

Erwägen Sie ein echtes Archivformat, entweder ein Softwarepaketsystem oder ein generisches Archiv wie Tar. Stellen Sie die Berechtigungen in den Skripten, die die Archive generieren, richtig ein.

Oder das Ausführen eines Skripts zum Korrigieren von Berechtigungen ist gar nicht so schlimm. Überprüfen Sie bei Bedarf die Berechtigungen, bevor Sie sie ändern, um unnötige Änderungen an den Dateimetadaten zu vermeiden.


Unabhängige Überlegung: Wenn dieser Baum aktualisiert werden soll, beachten Sie, dass Git keine Dateien synchronisiert, sondern Historien zusammenführt. Verstehendiese Git-Bereitstellungsregelnum zu verstehen, warum Scripting git pullwahrscheinlich einfach falsch ist.

verwandte Informationen