Frage Wo ist der übliche Ort, um Git-Repositories in einem Linux-Dateisystembaum zu speichern?


Wenn ich eine Analogie mit dem Hosting eines Webservers mache, würde ich sagen, dass die Daten von git drin sein sollten /var/git, also wäre mein Git Repository da /var/git/myrepo

Q: Ist das richtig?


53
2017-09-28 14:07


Ursprung




Antworten:


Es gibt hier keine richtige oder falsche Antwort, außer der, die von Ihrer eigenen persönlichen Religion und den Inhalten der hier(7) Manpage auf Ihrem System.

typisches Linux hier Manpage ; typische BSD hier Manpage)

/var/git/* erscheint mir persönlich vernünftig. Dort behalte ich meins.


30
2017-09-28 14:32



Ähnlich verhält es sich in Arch Linuxs Apache-Ordner / srv / http (anstelle von / var / www wie einige andere Distributionen), also lege ich meine Git-Sachen in / srv / git ab. - trusktr
Irgendwo unter / var / scheint vernünftig, aber siehe auch unten die Antwort von Denis R. serverfault.com/a/433584/45819 - Er bringt es aus guten Gründen in / var / lib / git - mit


Legen Sie es in ein Verzeichnis (oder ein freigegebenes Dateisystem) unter /srv. Dafür ist es da.

Das /srv Verzeichnis ist für bestimmt website-spezifische Daten, die vom System bereitgestellt werden. Vom Standard:

Der Hauptzweck dieser Angabe besteht darin, dass Benutzer die URL finden können   Speicherort der Datendateien für bestimmte Dienste und so   Dienste, die einen einzelnen Baum für schreibgeschützte Daten benötigen, beschreibbare Daten   und Skripte (wie CGI-Skripte) können sinnvoll platziert werden. Daten, die   ist nur für einen bestimmten Benutzer von Interesse, sollte in diesem Benutzer zu Hause gehen   Verzeichnis.

Die zum Benennen der Unterverzeichnisse von /srv ist als nicht spezifiziert   Es gibt derzeit keinen Konsens darüber, wie dies zu erreichen ist. Eine Methode   zur Strukturierung von Daten unter /srv ist per Protokoll, z. ftp, rsync, www,   und cvs. Auf großen Systemen kann es nützlich sein, zu strukturieren /srv durch   administrativer Kontext, wie z /srv/physics/www, /srv/compsci/cvs,   usw. Diese Einstellung unterscheidet sich von Host zu Host. Daher kein Programm   sollte sich auf eine bestimmte Unterverzeichnisstruktur von /srv vorhanden oder   Daten werden notwendigerweise in gespeichert /srv. jedoch /srv sollte immer   existieren auf FHS-konformen Systemen und sollten als Standard verwendet werden   Standort für solche Daten.

Distributionen müssen darauf achten, lokal platzierte Dateien nicht zu entfernen   diese Verzeichnisse ohne Administratorrechte.


Auf einem SELinux-fähigen System ist das Standardverzeichnis /var/www/git, und Repos sollten in Unterverzeichnissen davon sein. Oder Sie können z. /srv/git und legen Sie den Dateikontext als äquivalent fest:

semanage fcontext -a -e /var/www/git /srv/git

27
2017-10-01 12:13





/home/git/

Dies mag auf den ersten Blick etwas unkonventionell erscheinen, aber es ist sehr vernünftig, da dieses Verzeichnis für Sie (mit den richtigen Berechtigungen) erstellt wird, wenn Sie dies tun sudo useradd git. Sie können einfach zum Git Benutzer wechseln, cd und sofort laufen:

$ mkdir .ssh; chmod 700 .ssh
$ touch .ssh/authorized_keys; chmod 600 .ssh/authorized_keys

und setzen Sie öffentliche Schlüssel Ihrer Peers in die soeben erstellte Datei authorized_keys.

Nach dir git init --bare dein projekt, die "url" ist dann einfach ... warte darauf ...

git@<server>:<project>

5
2018-03-03 20:12



Fast wie im "Pro Git" Buch empfohlen: git-scm.com/book/de/v2/Git-on-the-Server-Setting-Up-the-Server - exic


Wie vor7 sagte, gibt es keine richtige oder falsche Antwort auf ein solches Thema. Wenn Sie jedoch von Softs folgen möchten, scheint es, dass die Datenbank ihre Daten darin speichert

/var/lib/soft

Zum Beispiel für Postgresql 9.1 on debian der Ordner ist

/var/lib/postgresql/9.1/

Also würde ich persönlich wählen

/var/lib/git

1
2017-10-01 10:03





Es liegt ganz bei Ihnen. Optimalerweise sollten Sie das git-data-Verzeichnis jedoch auf eine separate Partition oder sogar eine Festplatte legen, um System-Upgrades usw. einfacher zu machen, und natürlich müssen Sie sicherstellen, dass genügend Speicherplatz verfügbar ist.


1
2018-03-01 10:25





Auf meinem Arch Linux habe ich /srv/http für Apache (das System ist Standard) und ich verwende es auch für meine node.js http-Server. In ähnlicher Weise habe ich beschlossen, einfach alle Git-Repositories zu installieren /srv/git.

Ich benutze GitLab, und /srv/git ist in diesem Fall auch der Home-Ordner für Git.

Letztendlich liegt es an dir. Ich habe festgestellt, dass es leicht ist, sich an ein Format zu halten, das anderen Diensten in Ihrer Distribution ähnlich ist.


1
2018-01-30 17:05





Wenn Sie ein Frontend zum Git benutzen, gehen Sie einfach dorthin, wo das von Ihrer Distribution verpackte Paket sie platzieren möchte. Alles andere schafft nur unnötige Inkompatibilitäten.


0
2018-03-01 18:10



1 / Ich benutze kein Frontend für Git 2 / Git kommt nicht mit einer Empfehlung auf, wo git Repositories zu platzieren ... jeder Ordner, wo Sie git init tun, ist ein Git-Repository. - Samuel Rossille
1 / Am Front-End würde ich den Git-Server annehmen, der die Repos bedient. 2 / jeder solcher Server, selbst wenn nur ein HTTP-Server verwendet wird, hätte einen Standardspeicherort. Natürlich sprechen wir über den Standort für das Hosting, wenn Sie mit dem Code arbeiten, ist das .git meist innerhalb des Projekts. - hultqvist


Was den Vorschlag zur Verwendung von / srv angeht, gehen Sie zunächst davon aus, dass alle Git-Repositories für Websites verwendet werden. Es mag für Sie wahr sein, aber Sie könnten eine Software haben, die keine Webseite ist.

Zweitens erhalten Sie durch das Speichern Ihrer Code-Repositorys außerhalb von / var / www / html oder / srv / html zwei schöne Vorteile. Sie können symbolische Links in Ihr Repo auf jeder Ebene erstellen, um das Ausblenden Ihrer Bibliotheken zu erleichtern. Wenn sich der Speicherort Ihres Repository überhaupt ändert, müssen Sie Ihre virtuellen Hostkonfigurationen nicht ändern. Stattdessen passen Sie einfach Ihre symbolischen Links an.

Ich habe / var / repo benutzt, aber ich denke / var / git ist besser und wird das von jetzt an benutzen.


0
2017-11-21 17:44