Présentation

Inutile de faire deux fois la même chose, je vous propose d'ouvrir l'article de mon joueb dans un nouvel onglet où j'explique un peu tout ce qui a trait à GIT, son installation et son utilisation rapide : Article concernant GIT sur le BlankoJoueb

FIXME :

  • Montrer comment faire un serveur d'affichage du dépôt GIT
  • Montrer la manière de configurer la copie du dépôt GIT (config --global user.name et user.email, ainsi que le .git/config avec origin et les branches)
  • Présenter les déclencheurs dits “hooks”

Faites un tour sur les notes de l'auteur, vous trouverez possiblement quelques astuces non mises en forme.

Transformer le répertoire de notre code source en dépôt GIT

Vous avez bien avancé dans votre nouveau projet (nommé monProjet) et vous allez sûrement aller de l'avant à l'aide d'autres développeurs. Mais voilà, pour partager du code et mettre du code en commun, c'est pas toujours facile. Transformons notre projet en dépôt GIT afin à la fois de partager notre code mais également de gérer les erreurs lors de mises en commun ! Voilà pourquoi nous allons procéder comme suit :

  • cd monProjet
  • git init
  • git add .
  • git commit -m “Initialisation du dépôt GIT”

Voilà, votre projet s'est transformé en dépôt GIT.

Si l'adresse du projet est /home/olivier/monProjet, les personnes accédant à l'ordinateur peuvent faire :

  • git clone /home/olivier/monProjet

Dans leur répertoire personnel, ce qui aura pour effet de créer un nouveau dossier monProjet contenant les fichiers sources de votre projet.

Rendre le dépôt GIT de notre projet en dépôt dit "serveur"

Pour cela, si vous vous trouvez sur la même machine que le dépôt GIT du projet, je vous conseille de procéder comme suit :

  • cd /srv/depots/
  • git clone --bare /home/olivier/monProjet --shared=group

Ceci aura pour effet de créer un nouveau répertoire nommé monProjet qui sera accessible selon les permissions données aux fichiers contenus dans le dossier monProjet, mais également du groupe auquel appartient ce dossier.

Pour ma part j'ai procédé comme suit, sachant que j'utilise le compte olivier :

  • su root
  • groupadd git
  • gpasswd -a olivier git
  • cd /srv/depots/
  • chgrp git monProjet -R

Ainsi, tout les utilisateurs enregistrés sur la machine, et ayant un accès SSH ou direct dessus, pourra récupérer le dépôt selon une des manières suivantes :

  • git clone /srv/depots/monProjet
  • git clone ssh://utilisateur@domaine.com/srv/depots/monProjet

On peut également opter pour la méthode HTTP, décrite ci après.

NB : la commande gpasswd -a utilisateur groupe est à utiliser autant de fois qu'il est nécessaire de le faire pour permettre à toute une ribambelle d'utilisateurs du serveur de pouvoir accéder à votre dépôt GIT.

La méthode HTTP

La méthode par HTTP est toute simple, pour permettre la récupération d'un dossier par HTTP, il suffit simplement de créer le fichier suivant dans le répertoire GIT : git-daemon-export-ok.

  • cd /srv/depots/monProjet
  • touch git-daemon-export-ok
  • Puis on met à jour les informations serveur sur le dépôt
  • git update-server-info

Si vous changer le dépôt GIT de place, penser à lancer la commande git update-server-info pour tout remettre en place.

Par suite, si vous configurez votre serveur Web et votre nom de domaine (monprojet.com/depot/ par exemple), vous pourrez récupérer le dépôt de la manière suivante :

git clone http://monprojet.com/depot leProjetDeOlivier

Git copiera le dépôt distant situé dans le dossier depots du serveur web, dans un dossier leProjetDeOlivier.

Résoudre les soucis d'un dépôt GIT sur un système de fichier NTFS

Il arrive que malencontreusement vous utilisiez un système GNU / Linux mais que la seule place disponible soit une partition commune entre votre système libre et celui de Microsoft Windows XP (ou pire : Vista). À ce moment là vous possédez une partition NTFS pour les échanges entre les deux systèmes et vous y mettez par un exemple un dépôt GIT.

Lors de l'appel de la commande git push vous butez sur une erreur concernant soit les withespaces soit les tabulations. Pas vous ? En tout cas pour ma part ce fut le cas. Et pour résoudre le souci, bah suffit de supprimer la vérification de la présence d'espaces et de tabulations dans nos documents. On procède alors de cette façon :

  • Rendez - vous dans le dossier contenant votre dépôt GIT (à l'aide de la commande CD par exemple)
  • Faites :
vim .git/hooks/pre-commit
  • Dans ce fichier trouver les lignes suivantes, puis commentez les :
if (/\s$/) {
    bad_line("trailing whitespace", $_);
}
if (/^\s* \t/) {
    bad_line("indent SP followed by a TAB", $_);
}

Ceci vous évitera a posteriori de rencontrer des erreurs trailing whitespace et indent SP followed by a TAB !

Liens utiles

 
astuces/depots/git.txt · Dernière modification: 2010/06/02 11:06 par olivier
 
Sauf mention contraire, le contenu de ce wiki est placé sous la licence suivante:CC Attribution-Noncommercial-Share Alike 3.0 Unported
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki