2009-03-06 14 views
15

J'ai récemment essayé de configurer git repo sur une machine Linux et j'ai gaspillé environ 10 heures sans aucun résultat. Il n'y a aucun problème avec la compilation ou quelque chose comme ça, c'est juste un problème de configuration. 2 heures plus tard, je suis Mercurial à faire tout ce qu'il faut:Comment configurer les référentiels git publics?

  1. prises en pension publics
  2. web ui
  3. push/pull avec des autorisations par utilisateur (non liés à des comptes linux)

Tout que je peux voir à propos de git suppose que vous êtes soit en train de l'exécuter localement, en utilisant github ou avez déjà tout configuré. Je ne cherche pas les bons mots-clés ou il n'y a pas ou très peu d'informations sur le sujet. Je veux essayer git, mais la mise en place est une expérience très décourageante. Quelqu'un peut-il pointer vers quelque chose d'utile en ces termes?

merci!

+0

Ajout des solutions possibles non-SSH, comme demandé. – VonC

+0

Avez-vous réussi à installer un serveur git? J'ai essayé la solution git-daemon. Cela fonctionne très bien. – VonC

Répondre

13

Je crois (mais je ne l'ai pas encore essayé) que gitosis est la voie à suivre pour:
Mise à jour: 2011, je l'ai fait déployé gitolite

  • make hébergement git repos plus facile et plus sûr.
  • gère plusieurs référentiels sous un compte d'utilisateur, en utilisant des clés SSH pour identifier les utilisateurs.
    Les utilisateurs finaux n'ont pas besoin de comptes shell sur le serveur, ils vont parler à un compte partagé qui ne leur permettra pas d'exécuter des commandes arbitraires.

Le processus d'installation I recommand est un fait à partir d'un poste client afin de copier l'installation complète de gitolite sur le serveur:

(from-client method) install from the client to the server

Rappelez-vous: gitolite manages authorization, not authentication (SSH): il peut être utilisé sans SSH , mais son déploiement naturel est via SSH et le forced command mechanism. (Comme gitosis était, mais avec beaucoup plus de fonctionnalités)


Anciennes références pour gitosis:

Voici une étape par étape tutorial.

Et puis une application du tutoriel: Gitosis — making hosting multiple Git repositories manageable (pour Mac) ou installing gitosis on Ubuntu

Suivi par: Adding users to our secure Git setup

fini avec: Git subprojects (depuis votre serveur gitosis gère tous les différents git repositories)


Pour vraiment la lumière (serveur cgi) dépôts Git publique, vous pouvez:

  • mis en place un git server: git-daemon; il écoutera sur le port 9418. Par défaut, il permettra l'accès à n'importe quel répertoire qui ressemble à un répertoire git et contient le fichier magique git-daemon-export-ok. Passer certains chemins de répertoire en tant qu'arguments git-daemon limitera davantage les exportations vers ces chemins.
    Vous pouvez également exécuter git-daemon en tant que service inetd;
  • export with http lieu le dépôt git nu nouvellement créé dans un répertoire qui est exporté par le serveur web, et faire quelques ajustements pour donner aux clients Web des informations supplémentaires dont ils ont besoin

Voici comment faire sur un Apache server .


L'article "8 ways to share your git repository" 2010 mentionne toutes les possibilités de donner accès à un dépôt Git. si vous avez installé lighttpd

+0

Tutoriel suppose à tort que je veux utiliser SSH et que mon client est basé sur Linux. Malheureusement gitosis et ce tutoriel ont contribué de manière significative au temps que j'ai gaspillé en essayant de faire fonctionner git :( – alex

+0

"Linux box": quelle distribution utilisez-vous et quelles difficultés spécifiques avez-vous rencontrées en utilisant la gitose (vous pouvez ajouter toutes ces données à votre question, pour espérer obtenir une meilleure réponse.) En attendant, je vais essayer la gitose sur mon installation d'Ubuntu demain;) – VonC

+0

Le problème est que tout ceci est basé sur SSH. Est-il possible d'installer git sur un serveur cgi, disons lighttpd? – alex

1

Vous pouvez simplement faire

git instaweb

. C'est seulement l'interface graphique Web, cependant.