GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Dateiberechtigungen mit Git beibehalten

Der git-cache-meta Erwähnt in der SO-Frage "git - wie stellt man die Dateiberechtigungen wieder her, von denen git glaubt, dass die Datei sein sollte?" (und die Git-FAQ) ist der geradlinigere Ansatz.

Die Idee ist, in einem .git_cache_meta zu speichern Datei die Berechtigungen der Dateien und Verzeichnisse.
Es ist eine separate Datei, die nicht direkt im Git-Repository versioniert ist.

Deshalb lautet die Verwendung dafür:

$ git bundle create mybundle.bdl master; git-cache-meta --store
$ scp mybundle.bdl .git_cache_meta machine2: 
#then on machine2:
$ git init; git pull mybundle.bdl master; git-cache-meta --apply

Sie also:

  • bündeln Sie Ihr Repo und speichern Sie die zugehörigen Dateiberechtigungen.
  • Kopieren Sie diese beiden Dateien auf den Remote-Server
  • Stellen Sie das Repo dort wieder her und wenden Sie die Berechtigung an

Git ist ein Versionskontrollsystem, das für die Softwareentwicklung erstellt wurde. Daher speichert es aus dem gesamten Satz von Modi und Berechtigungen nur ausführbare Bits (für gewöhnliche Dateien) und Symlink-Bits. Wenn Sie vollständige Berechtigungen speichern möchten, benötigen Sie ein Drittanbieter-Tool wie git-cache-meta (erwähnt von VonC) oder Metastore (verwendet von etckeeper). Oder Sie können IsiSetup verwenden, das IIRC git als Backend verwendet.

Siehe die Seite Schnittstellen, Frontends und Tools im Git-Wiki.


Linux
  1. Grundlagen der Linux-Dateiberechtigungen

  2. Dateiberechtigungen und Speichern?

  3. So ändern Sie Datei- und Verzeichnisberechtigungen mit dem Dateimanager

  4. Linux – eigene Datei mit 777-Berechtigungen kann nicht entfernt werden

  5. Datei- und Ordnerberechtigungen mit rsync beibehalten

Grundlegendes zu Linux-Dateiberechtigungen

Chmod-Befehl in Linux (Dateiberechtigungen)

Linux-WC-Befehl mit Beispielen

Digitale Signaturen mit GnuPG

Linux-Dateiberechtigungen und Eigentumsrechte mit Beispielen erklärt

Verwalten Sie Verzeichnis- und Dateiberechtigungen mit chmod Recursive