Je cherche à installer un serveur git pour partager des projets avec mon équipe. Je ne souhaite pas créer de compte utilisateur sur le serveur avec un accès SSH pour chaque développeur ayant besoin d'un accès git. Il semble que deux solutions concurrentes couvrent ce problème: la gitose et la gitolite.
Je n'ai pu trouver aucune comparaison entre les deux solutions. Quelles sont les principales différences entre eux? Existe-t-il une autre solution similaire?
Je cherche à installer un serveur git pour partager des projets avec mon équipe.
Pour avoir un serveur git, la seule chose dont vous avez besoin sur le serveur distant est git. Si vous n'avez pas besoin d'autorisations précises (le partage avec votre équipe ne le suggère pas, c'est une possibilité) ou de fonctionnalités supplémentaires, vous n'avez pas besoin de gitolite, ou similaire.
Si git est disponible sur le serveur distant, vous pouvez faire ce que vous demandez maintenant, sans rien faire
ssh [user@]server
cd repos/are/here/
mkdir project.git
cd project.git
git init --bare
Localement:
cd projects/are/here/project
git remote add Origin [user@]server:repos/are/here/project.git
git Push -u Origin master
Si vous voulez faire quelque chose avec un utilisateur git dédié, les docs pour configurer un serveur git sont courts - parce que c'est vraiment très facile à faire.
En résumé:
.ssh/authorized_keys
De l'utilisateur gitgit-Shell
La différence seulement entre utiliser un utilisateur git dédié et non, est que si vous configurez l'utilisateur git pour qu'il utilise git-Shell
, Il ne le fera pas. se permettre de faire autre chose. Pour ce qui est d’agir en tant que serveur git, c’est identique à la solution de non-installation.
La principale différence est que la gitose est maintenant obsolète et n'est plus maintenue activement.
Gitolite est beaucoup plus de fonctionnalités complètes , et vient de publier son troisième version .
Sa caractéristique la plus intéressante est le référence virtuelle (VREF) qui permet de déclarer autant de pdate hook que vous voulez, ce qui vous permet de restreindre un Push par:
dir/nom du fichier :
Disons que vous ne voulez pas que les développeurs juniors appliquent des modifications au Makefile, parce que c'est assez complexe:- VREF/NAME/Makefile = @junior-devs
nombre de nouveaux fichiers :
Disons que vous ne voulez pas que les développeurs juniors poussent plus de 9 fichiers par commit, car vous voulez qu'ils fassent petit commits:- VREF/COUNT/9/NEWFILES = @junior-devs
détection avancée du type de fichier :
Parfois, un fichier a une extension standard (qui ne peut pas être gitignore), mais elle est en fait générée automatiquement. Voici un moyen de l'attraper:- VREF/FILETYPE/AUTOGENERATED = @all
Voir src/VREF/FILETETYPE
pour voir le mécanisme de détection.
vérifiant l'email de l'auteur :
Certaines personnes veulent s'assurer que "vous ne pouvez que pousser vos propres commits".- VREF/EMAIL-CHECK = @all
Voir src/VREF/EMAIL-CHECK
.
vote sur les commits :
Une implémentation de base du vote sur un commit est étonnamment facile:- VREF/EMAIL-CHECK = @all
.# 2 votes required to Push master, but trusted devs don't have this restriction
# RW+ VREF/VOTES/2/master = @trusted-devs
# - VREF/VOTES/2/master = @devs
Voir src/VREF/VOTES
pour la mise en œuvre.
etc...
Juste un sidenote. Vous pouvez également utiliser Gerrit pour vos besoins:
Tout d’abord, il semble que Gerrit soit utilisé pour la révision du code, mais vous pouvez l’utiliser également pour gérer les utilisateurs et leur donner des autorisations bien définies. Vous pouvez ignorer la révision du code (au moyen des contrôles d'accès ) et l'utiliser juste pour gérer des projets et des clés ssh. Gerrit dispose d'un mécanisme de contrôle d'accès très puissant:
Vous pouvez restreindre la diffusion à toutes les branches, balises ou autres éléments définis dans le document de contrôle d'accès.
Pour une solution encore plus rapide et plus sale, utilisez simplement démon git et passez d'égal à égal. Voici un article à propos de faire cela.
Edit: Je reconnais que cela ne répond pas strictement à la question du PO. Je mets ceci ici principalement pour ceux, comme moi, qui le découvrent en cherchant un moyen simple et sale de partager du code jusqu'à ce qu'un compte github d'entreprise soit configuré.
Cela fait un moment que je bousille pour qu'un serveur git fonctionne avec un accès LDAP, un contrôle d'accès fin, etc ... A découvert une révélation: Utilisez Gitlab :
si vous voulez une méthode d’installation rapide: utilisez le programme d’installation bitnami