Forum général.général Conseils pour se mettre à git

Posté par  . Licence CC By‑SA.
3
28
juil.
2015

Bonjour,

j'aimerais avoir mon propre dépôt git personnel pour partager des fichiers et collaborer avec des amis et collègues. Néanmoins, je ne sais pas exactement comment m'y prendre…

Voici quelques caractéristiques de ce que je recherche :
Une partie du contenu sera public mais une autre non (par exemple documents qui ne sont pas suffisamment matures ou documents en lien avec le boulot).
Le dépôt devrait contenir principalement des fichiers sous une licence libre mais peut-être pas exclusivement.
Je suis prêt à souscrire à un abonnement (pour peu que le prix soit raisonnable).
Ce serait appréciable si le service était situé sur le sol européen.

J'ai déjà un hébergement chez ovh. Peut-être que cela peut être utilisé pour y mettre un dépôt git ? L'un d'entre vous aurait-il déjà essayé ?

Vos conseils, suggestions, retours d'expérience sont les bienvenus !

edit:"format" -> "licence" : ce sont deux concepts qui n'ont rien à voir l'un avec l'autre !

  • # Commentaire supprimé

    Posté par  . Évalué à 5.

    Ce commentaire a été supprimé par l’équipe de modération.

    • [^] # Re: ssh et droits unix standards

      Posté par  . Évalué à 2.

      Pour l'héberger soi-même, il suffit d'une seule chose : ssh.

      Ça, c'est bon à savoir. Donc si j'upgrade mon offre d'hébergement pour bénéficier du ssh, ce devrait être bon ? Si je comprends bien ton post, il n'y a pas besoin d'avoir git (entre autres) sur le serveur ?

      Sinon, il y a une section dédiée à cela dans le livre pro git

      Oui, j'ai vu ça, mais c'est un peu difficile pour un débutant de résoudre la question de l'hébergement. Si j'étais autohébergé ce serait évidemment plus simple, mais ce n'est pas mon cas. Une fois que j'aurais mon dépôt git qui tourne je pourrais joyeusement plancher le bouquin !

      git-shell : remplace le shell de tes users pour les empêcher d'exécuter autre chose que les commandes git

      Je suis allé lire [1], mais j'ai du mal à comprendre comment ça s'utilise en pratique… Pourrais-tu m'éclairer ?

      Le même bouquin parle d'une connexion https (ainsi que du protocole git://). Mais pour cette dernière il me faut absolument git qui tourne sur le serveur distant si j'ai bien compris ? Donc ce n'est pas adapté pour un hébergement web, c'est bien ça ?

      [1] https://git-scm.com/docs/git-shell.html

      • [^] # Commentaire supprimé

        Posté par  . Évalué à 0.

        Ce commentaire a été supprimé par l’équipe de modération.

        • [^] # Re: ssh et droits unix standards

          Posté par  . Évalué à 4.

          @alenvers je comprends que ma phrase

          Une fois que j'aurais mon dépôt git qui tourne je pourrais joyeusement plancher le bouquin !

          ait pu te faire hérisser les poils :

          Il semblerait que tu ne maîtrises pas du tout git et que tu mets la charrue avant les bœufs. Tu as vaguement survolé un manuel et tu t'étonnes de ne pas comprendre. Donc, RTFM ! Il n'y a pas de déjeuné gratuit, il faut faire des efforts d'apprentissage.

          Néanmoins, saches que j'ai lu attentivement les chapitres 1 (intro), 2 (utilisation basique) et 4 (git sur un serveur) du livre avant de créer le thread. Ok, j'ai sauté le 3 (gestion des branches) et je reviendrai dessus quand j'aurai plus d'aisance (savoir gérer les branches n'est pas une compétence critique pour moi pour l'instant, même si c'est un outil hyper puissant). Je cherche à mettre en pratique ce que j'ai pu apprendre en lisant le livre avant d'attaquer les autres chapitres. C'est vrai que je ne maîtrise pas git, c'est le moins que l'on puisse dire, mais je pense qu'il est important que je commence à l'utiliser pour mieux l'appréhender.

          D'accord, je peux l'utiliser en local (et c'est ce que je fais). Néanmoins, l'installation sur un serveur distant n'avait pas l'air d'être une étape très compliquée et elle m'aurait ouvert des possibilités intéressantes. Cela dit, elle demande de faire des choix techniques qui ne sont pas détaillés étape par étape dans le bouquin : le chapitre 4 n'est pas un tuto pour créer un dépôt sur le net et ce n'est pas non plus un catalogue des solutions d'hébergement possibles. De plus, ayant peu d'expérience avec git, il était impossible pour moi d'anticiper mes besoins futurs et c'est pourquoi j'avais également besoin d'un retour d'expérience. C'est pour ces deux raisons que j'ai lancé le thread. À ce titre, tes réponses et celles des autres participants me sont bien utiles.

          Enfin, un hébergement externe nécessitant un passage au porte feuille (même si ce n'est pas la fin du monde) je veux être sûr d'avoir compris ce qui se passe et ne pas me contenter des "je crois que" que j'ai pu avoir en lisant le chapitre 4.

        • [^] # Re: ssh et droits unix standards

          Posté par  . Évalué à 1.

          La version simple : « Tu remplaces dans /etc/passwd le shell de tes utilisateurs ».

          La version propre: Tu utilises chsh, comme indiqué dans le lien donné auparavant.
          https://git-scm.com/docs/git-shell.html

  • # Github

    Posté par  . Évalué à 2.

    Bonjour,

    Pour ce faire, il faudra que tu créer plusieurs repo.

    Va faire un tour sur Github, ils ont des offres permettant d'avoir des repos privés (par défaut ils sont public).

    Sinon, utilise GitLab sur ton serveur Ovh, qui te permettra de configurer tout ça.

    • [^] # Re: Github

      Posté par  . Évalué à 1.

      Va faire un tour sur Github, ils ont des offres permettant d'avoir des repos privés (par défaut ils sont public).

      J'y avais pensé, mais c'est sur le sol américain si je ne dis pas de bêtises… Et il y a l'air d'avoir une dimension réseau social… (je trouve les réseaux sociaux oppressants ; je ne m'y sens pas vraiment bien).

      Sinon, utilise GitLab sur ton serveur Ovh, qui te permettra de configurer tout ça.

      Ça a l'air intéressant, mais qu'est-ce que cela apporte par rapport à un bête ssh ? (je pense au post de @alenvers)
      Bien sûr j'ai vu la page [1], mais pour un débutant c'est difficile d'apprécier à l'avance quels en seront les bénéfices au quotidien. Qu'est-ce que tu aimes dans GitLab ? Est-ce que cela sera utile pour l'utilisation basique que j'en aurai ? L'utilisation de GitLab ne dispense pas de l'utilisation d'une connexion ssh pour les git pull, j'imagine ?

      [1] https://about.gitlab.com/features/

      • [^] # Re: Github

        Posté par  (site web personnel) . Évalué à 3.

        Qu'est-ce que tu aimes dans GitLab ?

        • l'interface
        • la simplicité d'administration
        • la simplicité pour ajouter un nouveau user
        • la simplicité pour ajouter un nouveau dépôt
        • la simplicité pour faire un groupe d'utilisateurs (qui auront accès aux dépôts du groupe)
        • la granularité des droits (telle personne peut faire une merge request, ouvrir un ticket, pousser directement, etc)
        • le système de tickets
        • la possibilité d'ajouter un wiki

        Est-ce que cela sera utile pour l'utilisation basique que j'en aurai ?

        À toi de voir si tu auras l'usage de ce que j'ai énuméré au-dessus

        L'utilisation de GitLab ne dispense pas de l'utilisation d'une connexion ssh pour les git pull, j'imagine ?

        Tu peux utiliser ssh ou http, au choix.

        Si tu veux tester, tu peux te créer un compte sur https://git.framasoft.org. C'est hébergé en Allemagne mais Framasoft est une association bien française.

        Being a sysadmin is easy. As easy as riding a bicycle. Except the bicycle is on fire, you’re on fire and you’re in Hell.

  • # Il y a git et git

    Posté par  (site web personnel) . Évalué à 2.

    Pour un dépôt personnel, je suppose que tu ne cherches pas à avoir toute la partie « remontée de bug », gestion des « pull requests »… si c'est le cas c'est plus simple.

    En fait, le minimum, c'est un serveur ssh et un outil pour gérer la configuration des projets git. gitolite fait bien l'affaire, tu trouveras pas mal de doc pour expliquer comment l'installer.

    Si tu veux tu peux en rester là ; tu peux utiliser gitg pour afficher le projet et voir l'historique, ou n'importe quel autre outil.

    Par contre, ça nécessite un accès ssh pour consulter le dépôt. C'est pourquoi on propose souvent un accès web qui permet d'y accéder en lecture seule, (et puisque l'on a un navigateur, autant y ajouter une consultation de l'historique etc). Pour ça je recommande cgit qui est plus joli que gitweb, et dont la configuration peut être chargée depuis la conf gitolite.

    Ensuite si tu en veux encore davantage, oriente toi vers gitlab qui a déjà été cité plus haut.

    • [^] # Re: Il y a git et git

      Posté par  . Évalué à 0.

      Pour un dépôt personnel, je suppose que tu ne cherches pas à avoir toute la partie « remontée de bug », gestion des « pull requests »… si c'est le cas c'est plus simple.

      Effectivement, je recherche quelque-chose de relativement simple quitte à monter en complexité par la suite en fonction des besoins qui se feront sentir.

      En fait, le minimum, c'est un serveur ssh et un outil pour gérer la configuration des projets git

      Qu'est ce que je pourrais avoir besoin de configurer ? Pour moi, avec mon expérience de un jour avec git j'ai l'impression que je créé un dépôt et voilà, pas besoin d'y toucher. J'ai manqué quelque-chose ?

      Par contre, ça nécessite un accès ssh pour consulter le dépôt. C'est pourquoi on propose souvent un accès web qui permet d'y accéder en lecture seule,

      Je suis un peu surpris : si je comprends bien ton commentaire, avec une config très basique il n'y a pas moyen d'avoir accès aux fichiers, un peu à la manière d'un serveur sur lequel on uploade des fichiers en ftp via un compte restreint mais que n'importe qui peut aller consulter en http ?

      • [^] # Re: Il y a git et git

        Posté par  (site web personnel) . Évalué à 2.

        Qu'est ce que je pourrais avoir besoin de configurer ?

        Plein de chose !

        • la liste des clefs ssh autorisées (un utilisateur peut accéder au serveur sans être autorisé à se connecter au serveur git)
        • quels sont ceux qui peuvent commiter pour chaque projet
        • si le projet doit apparaître sur le site en ligne
        • le nom du projet…

        Je suis un peu surpris : si je comprends bien ton commentaire, avec une config très basique il n'y a pas moyen d'avoir accès aux fichiers, un peu à la manière d'un serveur sur lequel on uploade des fichiers en ftp via un compte restreint mais que n'importe qui peut aller consulter en http ?

        Sur une installation minimale, tu auras pour seul accès le compte ssh. Si tu veux un accès public, il te faut le serveur web, qui peut facilement s'installer, mais n'est pas obligatoire…

  • # Il y a Git et Gogs

    Posté par  . Évalué à 2.

    Gogs est un équivalent à Github mais auto-hébergé, avec peu de dépendances (et très simple à installer). Dépôts privés et publiques à la clé.

    • [^] # Re: Il y a Git et Gogs

      Posté par  . Évalué à 1.

      D'accord, je ne connaissais pas. C'est un concurrent de GitLab si je comprends bien ? Qu'est ce que tu préfères dans Gogs ?

      • [^] # Re: Il y a Git et Gogs

        Posté par  . Évalué à 2.

        Ce que je préfère dans Gogs :

        • aucune dépendance sur des librairies externes (vu qu'il est écrit en Go, toutes les libs sont compilées en statiques dans le binaire)
        • léger (~10 Mo de RAM utilisé au repos)
        • rapide (selon le CPU évidemment)
        • possède une grande partie des features intéressantes de Github (exception faite des wikis et des PR, mais les forks fonctionnent), webhooks,
        • simple et intuitif à utiliser

        Bref, voilà pourquoi je conseille Gogs (encore en développement actif, mais avance bien et ne plante pas).

  • # Conclusion

    Posté par  . Évalué à 3.

    J'y vois maintenant plus clair !

    Donc :
    @ pour avoir un dépôt git sur un serveur, il faut que ce dernier soit accessible en ssh et dispose de git
    @ des outils de configuration comme gitolite (ou GitLab ?) me seront utiles
    @ deux solutions envisageables sont soit d'utiliser un hébergement disposant de git et ssh, soit d'avoir un serveur dédié (ou vps ?). Cette dernière solution offre plus de flexibilité.
    @ avoir une interface web permet un grand nombre de facilités, la plus importante pour moi étant de savoir accéder aux fichiers depuis un navigateur web.

    Je pense que je vais commencer avec une bête connexion ssh. Quand j'aurai plus d'aisance j'installerai une interface web, peut être GitLab. Elle est clairement overkill pour mes besoins, mais c'est vrai qu'elle est très sympa (git.framasoft.org m'a bien aidé à voir à quoi ça ressemble dans la pratique ; une démo en "live" c'est mieux que des snapshots !).

    Merci pour vos conseils et retours d'expérience !

  • # le commencement

    Posté par  . Évalué à 4.

    il faut commencer par le commencement.

    1°) savoir faire et gerer des depots locaux (ou sur un support amovible)
    2°) une fois que tu maitrises un peu, ce n'est que rendre le depot distant en l'hebergeant à l'exterieur (git://, ssh://, https://)

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.