<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="fr">
	<id>https://wikibr.binets.fr/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Xavier.bonnetain</id>
	<title>WikiBR - Contributions [fr]</title>
	<link rel="self" type="application/atom+xml" href="https://wikibr.binets.fr/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Xavier.bonnetain"/>
	<link rel="alternate" type="text/html" href="https://wikibr.binets.fr/Sp%C3%A9cial:Contributions/Xavier.bonnetain"/>
	<updated>2026-05-11T18:59:03Z</updated>
	<subtitle>Contributions</subtitle>
	<generator>MediaWiki 1.38.2</generator>
	<entry>
		<id>https://wikibr.binets.fr/index.php?title=H%C3%A9bergement_des_sites_des_binets&amp;diff=7881</id>
		<title>Hébergement des sites des binets</title>
		<link rel="alternate" type="text/html" href="https://wikibr.binets.fr/index.php?title=H%C3%A9bergement_des_sites_des_binets&amp;diff=7881"/>
		<updated>2013-09-18T20:47:03Z</updated>

		<summary type="html">&lt;p&gt;Xavier.bonnetain : PHP 5.4 &amp;amp; 200Mo par défaut&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{menu services}}&lt;br /&gt;
&lt;br /&gt;
Le BR propose aux binets qui le désirent d'héberger gratuitement leur site web.&lt;br /&gt;
&lt;br /&gt;
Cet hébergement s'organise selon deux formules, avec ou sans la possibilité d'accéder au site de l'extérieur du Plâtal.&lt;br /&gt;
&lt;br /&gt;
Pour demander l'hébergement de ton site, envoie un mail à root@eleves.polytechnique.fr.&lt;br /&gt;
&lt;br /&gt;
== Sans visibilité extérieure ==&lt;br /&gt;
&lt;br /&gt;
Les sites internes sont hébergés sur [[Admin:Kevarzh | Kevarzh]].&lt;br /&gt;
&lt;br /&gt;
L'administration du site se fait par accès ftp en écriture, ouvert à tous les administrateurs Frankiz du binet considéré, ce qui nécessite d'identifier chaque site hébergé sur Kevarzh à un unique groupe Frankiz.&lt;br /&gt;
&lt;br /&gt;
L'écriture du site est bien entendu à la charge du webmaster du binet ; en cas de nécessité et pour une raison valable, un BRman pourra cependant proposer son aide.&lt;br /&gt;
&lt;br /&gt;
L'adresse du site est alors mon_binet.binets.fr ou mon_binet.binets.eleves.polytechnique.fr, ou plus simplement mon_binet.bin ;&lt;br /&gt;
&lt;br /&gt;
Voir par exemple le site de la Diskhâle Classique : [http://dhc.binets.fr http://dhc.binets.fr]  ou [http://dhc.binets.eleves.polytechnique.fr http://dhc.binets.eleves.polytechnique.fr] ou [http://dhc.bin http://dhc.bin].&lt;br /&gt;
&lt;br /&gt;
Pour accéder aux fichiers, il faut utiliser un client FTP (comme [http://filezilla-project.org/ FilleZilla Client]) et accéder au serveur [ftp://binets ftp://binets]. Le serveur FTP demande un login/mot de passe qui correspondent exactement aux comptes Frankiz. Le dossier ftp://binets/www/UN_BINET/htdocs/ correspond au site http://UN_BINET.binets.fr/. Les fichiers qui ne sont pas dans htdocs ne sont pas accessible directement par un navigateur, mais un script PHP peut y accéder.&lt;br /&gt;
&lt;br /&gt;
La base de données MySQL est accessible par un PhpMyAdmin : [http://phpmyadmin.bin/ http://phpmyadmin.bin/] (ou .binets, mais pas .binets.fr). Le nom d'utilisateur correspond au nom du binet tel qu'il apparaît dans le nom de domaine. Le mot de passe est défini par le BR et est généralement généré avec une méthode similaire à [http://www.random.org/passwords/ Random.org].&lt;br /&gt;
&lt;br /&gt;
== Avec visibilité extérieure ==&lt;br /&gt;
&lt;br /&gt;
Le BR s'est équipé d'un VPS (serveur privé virtuel à l'extérieur du Plâtal) permettant d'héberger des sites binets avec visibilité extérieure indépendamment des autorités de l’École. L'adresse de tels sites a pour suffixe binets.fr, comme [http://br.binets.fr/ br.binets.fr] ou [http://faerix.binets.fr/ faerix.binets.fr] par exemple.&lt;br /&gt;
&lt;br /&gt;
Les sites souhaitant un site avec visibilité depuis l'extérieur doivent dorénavant respecter la charte suivante :&lt;br /&gt;
&lt;br /&gt;
*Aucune information ne doit être diffusée qui pourrait nuire à l'image de l’École. (photos, vidéos, etc.)&lt;br /&gt;
*Le site doit avoir une qualité visuelle, si ce n'est professionnelle, du moins très correcte.&lt;br /&gt;
*Le site ne doit pas héberger de vidéos ou diffuser un flux vidéo (streaming). Toutes les vidéos du sites doivent être hébergées à l'extérieur. (Dalymotion, YouTube, etc.)&lt;br /&gt;
*Les images présentes sur le site ne doivent avoir une résolution suffisamment faible afin de ne pas saturer la bande passante vers l'extérieur.&lt;br /&gt;
&lt;br /&gt;
*Le BR offre ce service gratuitement, en partie grâce à une subvention de la Kès. Il se réserve le droit de refuser ou d'interrompre l'hébergement d'un site, sans préavis, sans recours possible et sans avoir à fournir de motif. Il s'engage à en informer immédiatement le bureau du binet concerné.&lt;br /&gt;
&lt;br /&gt;
== Modalités techniques ==&lt;br /&gt;
L'hébergement offert par le BR présente les caractéristiques suivantes :&lt;br /&gt;
* Capacité de stockage limitée à 200Mo par défaut. Il est possible d'obtenir plus sur demande.&lt;br /&gt;
* Serveur apache avec PHP 5.4&lt;br /&gt;
* Base de données MySQL&lt;br /&gt;
* Possibilité d'accès en HTTPS pour votre site en option.&lt;br /&gt;
&lt;br /&gt;
Si vous avez des besoins plus spécifiques, n'hésitez pas à nous en parler.&lt;br /&gt;
&lt;br /&gt;
[[Catégorie:Services]]&lt;/div&gt;</summary>
		<author><name>Xavier.bonnetain</name></author>
	</entry>
	<entry>
		<id>https://wikibr.binets.fr/index.php?title=Git&amp;diff=7740</id>
		<title>Git</title>
		<link rel="alternate" type="text/html" href="https://wikibr.binets.fr/index.php?title=Git&amp;diff=7740"/>
		<updated>2013-02-24T22:20:04Z</updated>

		<summary type="html">&lt;p&gt;Xavier.bonnetain : git:// est utilisable à travers kuzh&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{menu Root Toolbox}}&lt;br /&gt;
&lt;br /&gt;
Git est un [[VCS|système de contrôle de version]]. Assez proche de [[SVN]] par certains côtés, il présente néanmoins un grand nombre de différences.&lt;br /&gt;
&lt;br /&gt;
Avant de découvrir les spécificités de Git, il est nécessaire de connaître les concepts généraux des [[VCS|systèmes de contrôle de version]].&lt;br /&gt;
&lt;br /&gt;
Cette page donne un bref aperçu des fonctionnalités de Git. Un autre bon aperçu est disponible [http://giudoku.sourceforge.net/media/GitHandbook.pdf ici] (lien non BR)&lt;br /&gt;
&lt;br /&gt;
Une cheatsheet est également disponible [http://ndpsoftware.com/git-cheatsheet.html ici], c'est un bon aide mémoire.&lt;br /&gt;
&lt;br /&gt;
== Dépôts ==&lt;br /&gt;
&lt;br /&gt;
Alors que [[CVS]] et [[SVN]] sont des systèmes de versionnement centralisés (i.e un serveur contient le dépôt, et chaque utilisateur effectue un ''checkout'' depuis ce dépôt), Git est complètement décentralisé. Cela signifie que chaque contributeur a sa propre copie locale de tout l'historique d'un projet. Si aujourd'hui vous considérez que l'espace disque sur votre ordinateur est un problème, allez faire un tour, partez admirer les merveilles de la technologies qui nous entoure, et revenez demain. Sur cette page, tous les examples sont tirés du Git de [[Frankiz]], mais voici d'autres dépôts bien utiles :&lt;br /&gt;
* [http://www.github.com/ GitHub]&lt;br /&gt;
* [http://git.frankiz.net/ Frankiz]&lt;br /&gt;
* [http://git.polytechnique.org/ Polytechnique.org]&lt;br /&gt;
&lt;br /&gt;
== Récupérer le code d'un projet existant ==&lt;br /&gt;
&lt;br /&gt;
Pour télécharger un projet existant, il y a deux possibilités : avec un compte de développeur ou sans compte. Avec un compte SSH simple, il suffit d'exécuter la commande suivante :&lt;br /&gt;
 git clone mybeautifulname@git.frankiz.net:/hosting/git/frankiz&lt;br /&gt;
Sans compte, certains projets sont téléchargeables avec le protocole HTTP, mais vous ne pourrez pas uploader vos modifications.&lt;br /&gt;
 git clone http://git.frankiz.net/frankiz&lt;br /&gt;
&lt;br /&gt;
Cela crée un '''clone''' du dépôt d'origine (i.e une copie conforme), qui peut d'ailleurs servir de backup si le dépôt d'origine était perdu. Notre clone contient tout l'historique du dépôt depuis sa création, toutes les branches, etc. Cette première opération est très souple. On peut cloner des dépôt via SSH, HTTP, GIT, ou même en local le dépôt d'un autre utilisateur...&lt;br /&gt;
&lt;br /&gt;
Par exemple la commande suivante clone dans le dossier ''platal'' la branche ''core/master'' d'une version de Plat/al potientiellement modifiée par le vice-prez 2010 :&lt;br /&gt;
 git clone /home/2010/fishilico/dev/platal/.git platal -b core/master&lt;br /&gt;
&lt;br /&gt;
== Accéder à l'aide ==&lt;br /&gt;
Avant toute chose, il est essentiel de savoir où trouver de l'aide, d'autant plus que l'aide de Git est très bien faite.&lt;br /&gt;
* Sur internet, il y a le wikiBR, les pages de manuel ([http://linux.die.net/man/1/git sur Linux Die] par exemple) et le [http://book.git-scm.com/ Git Book]&lt;br /&gt;
* En terminal, ''git help'' pour une liste des commandes, ''git help cmd'' ou ''git cmd --help'' pour l'aide complète de la commande ''cmd'', ou encore simplement ''git cmd -h'' pour une aide courte sur la commande ''cmd''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Quel est l'état de ma copie de travail ? ==&lt;br /&gt;
Ceci est la question que vous devez vous posez avant de reprendre après une pause votre travail sur un projet versionné. Il peut y avoir eu des changements sur le projet entre temps, des patchs mal faits en production, ... Pour cela, il y a trois commandes essentielles :&lt;br /&gt;
* Pour vérifier que le dépôt est correct, ''git status'' doit dire cela :&lt;br /&gt;
 git status&lt;br /&gt;
 # On branch master&lt;br /&gt;
 nothing to commit (working directory clean)&lt;br /&gt;
* En cours de travail, la réponse ressemble plus à :&lt;br /&gt;
 git status&lt;br /&gt;
 # On branch master&lt;br /&gt;
 # Changes not staged for commit:&lt;br /&gt;
 #   (use &amp;quot;git add &amp;lt;file&amp;gt;...&amp;quot; to update what will be committed)&lt;br /&gt;
 #   (use &amp;quot;git checkout -- &amp;lt;file&amp;gt;...&amp;quot; to discard changes in working directory)&lt;br /&gt;
 #&lt;br /&gt;
 #	modified:   un-fichier-random.blah&lt;br /&gt;
 #&lt;br /&gt;
 # Untracked files:&lt;br /&gt;
 #   (use &amp;quot;git add &amp;lt;file&amp;gt;...&amp;quot; to include in what will be committed)&lt;br /&gt;
 #&lt;br /&gt;
 #	un-fichier-chombier-ajouté.42&lt;br /&gt;
 no changes added to commit (use &amp;quot;git add&amp;quot; and/or &amp;quot;git commit -a&amp;quot;)&lt;br /&gt;
* Lire l'historique est bien pour savoir quel est le dernier commit&lt;br /&gt;
 git log&lt;br /&gt;
 commit 2a424aae1e746fb5f33de3b3bc3e8a31ee25c684&lt;br /&gt;
 Author: Nicolas Iooss &amp;lt;fishilico@eleves.polytechnique.fr&amp;gt;&lt;br /&gt;
 Date:   Fri Mar 9 00:27:35 2012 +0100&lt;br /&gt;
* Voir les différences entre la version sur le dépôt distant et celle de travail&lt;br /&gt;
 git diff&lt;br /&gt;
&lt;br /&gt;
De plus, après avoir téléchargé les derniers commits avec ''git fetch'', il est possible d'obtenir le message suivant :&lt;br /&gt;
 git status&lt;br /&gt;
 # On branch master&lt;br /&gt;
 # Your branch is behind 'origin/master' by 42 commits, and can be fast-forwarded.&lt;br /&gt;
Cela signifie que la copie locale a 42 commits de retard sur le dépôt distant, mais qu'un ''git rebase origin/master'' suffit pour mettre à jour la copie locale.&lt;br /&gt;
&lt;br /&gt;
== Réinitialiser le dépôt ==&lt;br /&gt;
Pour restaurer un fichier, il suffit de le ''checkout'' à partir de l'index. En français, cela signifie que lorsque vous faites une modification sur un fichier, vous pouvez effacer les modifications et revenir la dernière version enregistrée dans l'index Git avec la commande :&lt;br /&gt;
 git checkout -- chemin/vers/mon/fichier.blih&lt;br /&gt;
Pour réinitialiser l'index dans l'état indiqué par une branche (comme ''master'' par exemple) sans modifier les fichier, il suffit d'écrire :&lt;br /&gt;
 git reset master&lt;br /&gt;
Si cela ne marche pas car des fichiers seront modifiés ou effacés, on peut forcer la main à Git, mais alors il faut être prêt à subir les conséqences que cela implique (perte des modifications non commitées)&lt;br /&gt;
 git reset --hard master&lt;br /&gt;
&lt;br /&gt;
== Mettre à jour la copie de travail ==&lt;br /&gt;
=== git fetch &amp;amp;&amp;amp; git rebase origin/master ===&lt;br /&gt;
Dans le cas général, vous travaillez sur la branche ''master'' et vous synchronisez votre projet sur un seul serveur. Si votre cas est plus compliqué, vous devez être suffisamment compétent pour vous débrouillez par vous-même. On disait donc... dans le cas simple, Git stocke en interne deux branches : ''master'' et ''origin/master''. Sur Frankiz, c'est un peu plus compliqué car il y a une branche de production, mais les développeurs n'utilisent que master.&lt;br /&gt;
 git branch -a&lt;br /&gt;
 * master&lt;br /&gt;
   remotes/origin/HEAD -&amp;gt; origin/master&lt;br /&gt;
   remotes/origin/f579e1971a66623b2948bf0e20c2e23481022b41&lt;br /&gt;
   remotes/origin/fkz2&lt;br /&gt;
   remotes/origin/kangz-h4ck3s&lt;br /&gt;
   remotes/origin/master&lt;br /&gt;
   remotes/origin/prod&lt;br /&gt;
&lt;br /&gt;
Pour mettre à jour sa copie de travail, il faut donc commencer par mettre à jour les branches distantes, avec '''au choix''' l'une des commandes suivantes&lt;br /&gt;
 git fetch&lt;br /&gt;
 git fetch origin&lt;br /&gt;
&lt;br /&gt;
Ensuite, il faut appliquer les éventuelles modifications locales à la suite de celles effectuées sur le dépôt, c'est le '''rebase'''.&lt;br /&gt;
 git rebase origin/master&lt;br /&gt;
Git essaiera alors d'appliquer les commits locaux successivement, en indiquant chaque fois qu'il y a un problème (conflit ou fichier supprimé). En cas de problème, il faut&lt;br /&gt;
# Résoudre le problème (les fichiers avec des conflits apparaîssent comme ''Changed but not updated'' dans ''git status'')&lt;br /&gt;
# Ajouter les fichiers (''git add'')&lt;br /&gt;
# Indiquer à git de continuer : ''git rebase --continue''&lt;br /&gt;
&lt;br /&gt;
Remarque : git pull --rebase est un raccourci pour l'ensemble git fetch &amp;amp;&amp;amp; git rebase. Attention cependant lors du travail sur plusieurs branches.&lt;br /&gt;
&lt;br /&gt;
Ceci permet de transformer l'état suivant (les ''O'' sont les commits, ''A'' le moment où les deux versions ont commencé à diverger, ''B'' la version du dépôt, ''E'' la version locale, ''C'' et ''D'' des commits locaux&lt;br /&gt;
&lt;br /&gt;
       -C--D--E&lt;br /&gt;
      /&lt;br /&gt;
 -O--A--O--B&lt;br /&gt;
&lt;br /&gt;
En l'état plus propre :&lt;br /&gt;
 -O--A--O--B--C'--D'--E'&lt;br /&gt;
&lt;br /&gt;
Avec C, D et E convertis en C', D' et E' : ils ont été modifiés pour être des modifications relatives à B au lieu de A.&lt;br /&gt;
&lt;br /&gt;
=== Pourquoi il ne faut JAMAIS utiliser git pull ===&lt;br /&gt;
Certains développeurs utilisent la commande ''git pull'' pour mettre à jour leur dépôt. Cette pratique est justifiée lorsque la copie de travail était propre (sans commit en attente de push entre autres), mais sinon, cela peut avoir des conséquences très graves et sales. En effet, ''git pull' est assimilé à la succession de commandes suivantes :&lt;br /&gt;
 git fetch origin &amp;amp;&amp;amp; git merge origin/master&lt;br /&gt;
Le problème est le merge. En reprenant les schémas précédents, cela transforme l'état suivant :&lt;br /&gt;
&lt;br /&gt;
       -C--D--E&lt;br /&gt;
      /&lt;br /&gt;
 -O--A--O--B&lt;br /&gt;
&lt;br /&gt;
en :&lt;br /&gt;
&lt;br /&gt;
       -C--D--E&lt;br /&gt;
      /        \&lt;br /&gt;
 -O--A--O--B----M&lt;br /&gt;
&lt;br /&gt;
où M est le commit ''de fusion de branches''. '''Cela est très moche et à éviter absolument'''. Si vous vous retrouvez dans cette suituation (pour vérifier : ''git log''), vous pouvez toujours tenter un ''git rebase origin/master'' qui peut fonctionner si le ''merge'' était trivial (sans conflit). Sinon, un ''git reset --hard origin/master'' s'impose pour assurer votre salut.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Sauvegarder des modifications locales (git stash) ===&lt;br /&gt;
Avant de faire un merge particulièrement délicat, ou si l'on doit résoudre un bug alors que l'on a pas mal de modifications non commitées en cours, il est parfois utile de sauvegarder l'état courant de la copie de travail.&lt;br /&gt;
&lt;br /&gt;
Pour cela, il faut utiliser '''avant''' un changement (avec ''git rebase'' par exemple) :&lt;br /&gt;
 git stash&lt;br /&gt;
Une fois les modifications effectuées, on peut restorer la copie locale à l'état sauvegardé avec :&lt;br /&gt;
 git stash pop&lt;br /&gt;
&lt;br /&gt;
== Effectuer un commit ==&lt;br /&gt;
Un '''commit''' est un ensemble de fichiers modifiés. Cela permet plus de cohérence dans le suivi des versions. Par exemple, si l'ajout d'une fonctionnalité sur Frankiz modifie les fichiers ''blah'', ''blih'' et ''bloh'', le ''commit'' regroupe les modifications de ces trois fichiers, et associe à cette modification une date et un auteur.&lt;br /&gt;
&lt;br /&gt;
Pour effectuer un commit, il faut :&lt;br /&gt;
* Vérifier l'état de la copie de travail, pour ne commiter que ce qui est nécessaire&lt;br /&gt;
 git status&lt;br /&gt;
 git diff&lt;br /&gt;
* Indiquer à Git quels fichiers feront partie du commit ; ceci permet de ne committer que les modifications de quelques fichiers&lt;br /&gt;
 git add path/to/blih path/to/blah path/to/bloh&lt;br /&gt;
* Vérifier que l'on a ajouté les fichiers que l'on voulait :&lt;br /&gt;
 git status&lt;br /&gt;
* Faire le commit (le ''-s'' ajoute une ligne ''Signed of by'' dans le message, pour pouvoir retrouver plus efficacement l'auteur réel du commit)&lt;br /&gt;
 git commit -s&lt;br /&gt;
* Cette commande ouvre un éditeur (vi, nano ou emacs selon la configuration de la variable EDITOR). Il faut alors entrer un bref descriptif du commit. '''Pour certains projets (dont Frankiz), les conventions de codage obligent les développeurs à écrire les descriptions en anglais.''' Il est un bon usage de s'adapter en conséquence, car un commit peut être refusé en production s'il est mal fait.&lt;br /&gt;
* Mettre à jour la copie locale avec le dépôt distant (cela décale le nouveau commit à la fin). '''IL NE FAUT SURTOUT PAS FAIRE DE git pull OU DE git merge ICI'''&lt;br /&gt;
 git fetch&lt;br /&gt;
 git rebase origin/master&lt;br /&gt;
* Transmettre les commits au dépôt d'origine&lt;br /&gt;
 git push&lt;br /&gt;
&lt;br /&gt;
La dernière commande provient du fait que git n'est pas centralisé : il n'envoie pas les modifications locales au dépôt parent spontanément.&lt;br /&gt;
&lt;br /&gt;
Ceci permet de faire quelques modifications locales puis de n'envoyer cela au reste des développeurs que lorsque les modifications sont stables et complètes, par exemple.&lt;br /&gt;
&lt;br /&gt;
== Gérer les branches ==&lt;br /&gt;
On peut voir la liste des branches accessibles avec :&lt;br /&gt;
 git branch -a&lt;br /&gt;
* La ligne avec une étoile est la branche courante&lt;br /&gt;
* Les lignes blanches sont les branches ''locales'' (elles suivent généralement une branche distante)&lt;br /&gt;
* Les lignes rouges (si les couleurs sont activées) sont les branches distantes.&lt;br /&gt;
&lt;br /&gt;
Pour récupérer une autre branche, il faut d'abord l'ajouter localement :&lt;br /&gt;
 git checkout -b NomLocal origin/NomDistant&lt;br /&gt;
&lt;br /&gt;
Cela aura également pour effet de basculer sur la branche NomLocal.&lt;br /&gt;
Les modifications que l'on avait effectuées sont bien entendu conservées.&lt;br /&gt;
&lt;br /&gt;
Une fois la branche ajoutée, on peut basculer de branche en branche à l'aide de :&lt;br /&gt;
 git checkout NomLocal&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Créer un dépôt ==&lt;br /&gt;
Contrairement à [[SVN]] où il faut installer un serveur subversion, créer un dépôt Git est très rapide : dans le dossier que l'on souhaite versionner, il suffit de taper&lt;br /&gt;
 git init&lt;br /&gt;
Et voilà, le dossier est versionné : on peut donc commencer à faire des modifications, des commits, etc. (bien entendu, on ne peut pas ''pusher'' ses commits, puisqu'il n'y a pas de serveur distant).&lt;br /&gt;
&lt;br /&gt;
Cette particularité rend Git très efficace pour versionner un petit projet, un exercice de TD, etc.&lt;br /&gt;
&lt;br /&gt;
Pour créer un dépôt qui peut être cloné, il faut exécuter les commandes suivantes :&lt;br /&gt;
 git init --bare mon_projet&lt;br /&gt;
 cd mon_projet &amp;amp;&amp;amp; git update-server-info&lt;br /&gt;
&lt;br /&gt;
Enfin, pour configurer un serveur HTTP (gitweb), il ne faut pas oublier de créer un fichier vide '''git-daemon-export-ok''' dans le dossier, afin de permettre le clonage.&lt;br /&gt;
&lt;br /&gt;
== Structure interne ==&lt;br /&gt;
&lt;br /&gt;
Git stocke les commits de manière très particulière : un commit correspond à peu près à une sauvegarde de l'état des fichiers, à un message, et à une référence vers le commit parent.&lt;br /&gt;
Contrairemant à [[SVN]], il n'y a donc pas de notion de numéro de révision : chaque commit est identifié par une chaîne hexadécimale de 40 caractères (par exemple : ''04fd02e59b1bdc430c7a7dcc1ca9f4cbc2b04037'' )&lt;br /&gt;
&lt;br /&gt;
Un ''tag'' est en fait un nom «lisible» donné à un ''commit'' ; une ''branche'' indique également le ''commit'' principal d'une branche.&lt;br /&gt;
&lt;br /&gt;
== Du bon usage de gitignore ==&lt;br /&gt;
Dans un projet, il est inutile de versionner les fichiers temporaires et les fichiers compilés (qu'ils soient binaires ou non). On utilise généralement un Makefile pour créer ces fichiers. Pour éviter de les versionner, il suffit d'utiliser un fichier ''.gitignore'' bien placé. Généralement, chaque projet a un tel fichier dans son dossier principal. Voici par exemple un extrait du gitignore de Frankiz :&lt;br /&gt;
 configs/frankiz.conf&lt;br /&gt;
 htdocs/.htaccess&lt;br /&gt;
 htdocs/data/*&lt;br /&gt;
 htdocs/css/*&lt;br /&gt;
 spool/*&lt;br /&gt;
 upgrade/2.0.0_to_3.0.0/unversionned&lt;br /&gt;
&lt;br /&gt;
== Configuration globale ==&lt;br /&gt;
Si vous avez déjà commitez, vous aurez certainement remarqué qu'il faut utiliser ''git config'' pour configurer vos informations personnelles. Ainsi, les deux premières commandes que tout utilisateur doit taper avant de faire un commit sont :&lt;br /&gt;
 git config --global user.name &amp;quot;Prénom Nom de famille&amp;quot;&lt;br /&gt;
 git config --global user.email &amp;quot;prenom.nom.promo@polytechnique.org&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Ensuite, si vous aimez les couleurs, vous avez envie de taper cette commande :&lt;br /&gt;
 git config --global color.ui auto&lt;br /&gt;
&lt;br /&gt;
Enfin, si vous en avez assez des projets qui ne mettent pas les fichiers temporaires dans le gitignore, vous pouvez configurer un fichier gitignore global. Si votre ''/home/user/.gitignore_global'' ressemble à&lt;br /&gt;
 *~&lt;br /&gt;
 *.swp&lt;br /&gt;
 *.tmp&lt;br /&gt;
il suffit de taper :&lt;br /&gt;
 git config --global core.excludesfile /home/user/.gitignore_global&lt;br /&gt;
&lt;br /&gt;
Tout cela permet de gérer la configuration globale, visible par&lt;br /&gt;
 git config --global -l&lt;br /&gt;
En enlevant ''--global'' dans toutes les commandes précédentes, on configure la copie locale.&lt;br /&gt;
&lt;br /&gt;
=== Exemple de configuration ===&lt;br /&gt;
Voici un exemple de fichier ~/.gitconfig (qui stocke la configuration ''--global'', le même format peut être utilisé dans les fichier ''$REPO/.git/config'' de chaque dépot) :&lt;br /&gt;
 [gc]&lt;br /&gt;
    auto = 1&lt;br /&gt;
 [color]&lt;br /&gt;
    ui = true&lt;br /&gt;
 [color &amp;quot;diff&amp;quot;]&lt;br /&gt;
    whitespace = red reverse&lt;br /&gt;
 [core]&lt;br /&gt;
    whitespace=fix,-indent-with-non-tab,trailing-space,cr-at-eol&lt;br /&gt;
 [alias]&lt;br /&gt;
    st = status&lt;br /&gt;
    ci = commit&lt;br /&gt;
    br = branch&lt;br /&gt;
    co = checkout&lt;br /&gt;
    df = diff&lt;br /&gt;
    dc = diff --cached&lt;br /&gt;
    lg = log -p&lt;br /&gt;
    lo = log --graph --decorate --pretty=oneline --abbrev-commit -n 10&lt;br /&gt;
    lol = log --graph --decorate --pretty=oneline --abbrev-commit&lt;br /&gt;
    lola = log --graph --decorate --pretty=oneline --abbrev-commit --all&lt;br /&gt;
    ls = ls-files&lt;br /&gt;
    # Show files ignored by git:&lt;br /&gt;
    ign = ls-files -o -i --exclude-standard&lt;br /&gt;
    amend = commit --amend -C HEAD&lt;br /&gt;
 [branch]&lt;br /&gt;
    autosetuprebase = always&lt;br /&gt;
&lt;br /&gt;
== Utiliser le proxy de l'X avec Git ==&lt;br /&gt;
Si vous hébergez un projet sur [http://www.github.com GitHub], vous avez envie de dire à Git de se connecter à GitHub en SSH en passant par le proxy de l'X (qui est [http://kuzh.polytechnique.fr:8080 kuzh:8080]). Pour cela, il suffit de configurer le client SSH pour utiliser le proxy à chaque connexion vers github.com. Cela s'effecute par le fichier de configuration suivant dans /home/user/.ssh/config (adaptez avec votre dossier personnel)&lt;br /&gt;
 Host github.com&lt;br /&gt;
     ProxyCommand socat - PROXY:kuzh.polytechnique.fr:%h:%p,proxyport=8080&lt;br /&gt;
&lt;br /&gt;
Si vous souhaitez utiliser le protocole git://, il faut utiliser socat, et créer un exécutable avec dedans :&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 exec socat STDIO PROXY:129.104.247.2:$1:$2&lt;br /&gt;
&lt;br /&gt;
Puis mettre cet executable dans la variable core.gitproxy :&lt;br /&gt;
 git config --global core.gitproxy NOM_DU_FICHIER&lt;br /&gt;
&lt;br /&gt;
N'oubliez pas d'enlever cette variable pour utiliser git en-dehors de l'X.&lt;br /&gt;
&lt;br /&gt;
'''Si vous souhaitez uniquement cloner un dépôt GitHub''' dont vous n'êtes pas contributeur, il suffit d'utiliser le lien HTTPS en ligne de commande, en précisant le proxy.&lt;br /&gt;
 export https_proxy=http://kuzh.polytechnique.fr:8080&lt;br /&gt;
 git clone https://github.com/BinetReseau/frankiz.git&lt;br /&gt;
&lt;br /&gt;
Finalement, si vous ne voulez pas vous connecter par ssh, mais vous souhaitez travailler normalement avec un depôt à l'extérieur de l'X, configurez git par le biais de ces commandes:&lt;br /&gt;
 git config --global http.proxy http://kuzh.polytechnique.fr:8080&lt;br /&gt;
 git config --global https.proxy http://kuzh.polytechnique.fr:8080&lt;br /&gt;
&lt;br /&gt;
Cela va effectuer les modifications correspondantes sur le fichier ~/.gitconfig. '''N'oubliez pas de les enlever dès que vous n'êtes plus connectés au réseau de l'école, avec''':&lt;br /&gt;
 git config --global --unset http.proxy http://kuzh.polytechnique.fr:8080 &lt;br /&gt;
&lt;br /&gt;
= Pour Windows =&lt;br /&gt;
&lt;br /&gt;
Pour utiliser Git sur Windows, on peut par exemple télécharger MSys Git : [http://msysgit.github.com/ http://msysgit.github.com/].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Catégorie:Root]]&lt;/div&gt;</summary>
		<author><name>Xavier.bonnetain</name></author>
	</entry>
	<entry>
		<id>https://wikibr.binets.fr/index.php?title=Mod%C3%A8le:Content_serveurs&amp;diff=7304</id>
		<title>Modèle:Content serveurs</title>
		<link rel="alternate" type="text/html" href="https://wikibr.binets.fr/index.php?title=Mod%C3%A8le:Content_serveurs&amp;diff=7304"/>
		<updated>2013-02-03T13:34:25Z</updated>

		<summary type="html">&lt;p&gt;Xavier.bonnetain : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Général :'''&lt;br /&gt;
{| style=&amp;quot;background-color:transparent&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
* [[Admin:Serveurs_du_BR|Les serveurs]]&lt;br /&gt;
|&lt;br /&gt;
* [[Admin:Configuration des serveurs|Configuration]]&lt;br /&gt;
* [[Réseau:Attribution des prises local BR|Réseau du local]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''Détails :'''&lt;br /&gt;
{| style=&amp;quot;background-color:transparent&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
* [[Admin:Frankiz|Frankiz]]&lt;br /&gt;
* [[Admin:Heol|Heol]]&lt;br /&gt;
* [[Admin:Deiz|Deiz]]&lt;br /&gt;
* [[Admin:Kevarzh|Kevarzh]]&lt;br /&gt;
* [[Admin:Moaz|Moaz]]&lt;br /&gt;
* [[Admin:Envorenn|Envorenn]]&lt;br /&gt;
|&lt;br /&gt;
* [[Admin:Lodan|Lodan]]&lt;br /&gt;
* [[Admin:Lunedenn|Lunedenn]]&lt;br /&gt;
* [[Admin:Galloudel|Galloudel]]&lt;br /&gt;
* [[Admin:Skignerezh|Skignerezh]]&lt;br /&gt;
* [[Admin:Koun|Koun]]&lt;br /&gt;
* [[Admin:Onduleur|Onduleurs]]&lt;br /&gt;
|}&lt;br /&gt;
'''Anciens serveurs'''&lt;br /&gt;
{| style=&amp;quot;background-color:transparent&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
* [[Admin:Gwennoz|Gwennoz]]&lt;br /&gt;
* [[Admin:Pellwel|Pellwel]]&lt;br /&gt;
|&lt;br /&gt;
* [[Admin:Skinwel|Skinwel]]&lt;br /&gt;
* [[Admin:Enez|Enez]]&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Xavier.bonnetain</name></author>
	</entry>
	<entry>
		<id>https://wikibr.binets.fr/index.php?title=Mod%C3%A8le:R%C3%A9unions2011&amp;diff=7249</id>
		<title>Modèle:Réunions2011</title>
		<link rel="alternate" type="text/html" href="https://wikibr.binets.fr/index.php?title=Mod%C3%A8le:R%C3%A9unions2011&amp;diff=7249"/>
		<updated>2013-01-16T23:50:59Z</updated>

		<summary type="html">&lt;p&gt;Xavier.bonnetain : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* [[Réunion:2012-12-19_Magnan_BR-ENSTA|Magnan-BR du 19 décembre 2012, avec l'ENSTA]]&lt;br /&gt;
* [[Réunion:2012-12-20_Kes-BR| Réunion avec la Kès du 20 décembre 2012]]&lt;br /&gt;
* [[Réunion:2013-01-16_1ere|1ère Réunion BR 2011 du 16 janvier 2013]]&lt;/div&gt;</summary>
		<author><name>Xavier.bonnetain</name></author>
	</entry>
	<entry>
		<id>https://wikibr.binets.fr/index.php?title=Mod%C3%A8le:R%C3%A9unions2011&amp;diff=7248</id>
		<title>Modèle:Réunions2011</title>
		<link rel="alternate" type="text/html" href="https://wikibr.binets.fr/index.php?title=Mod%C3%A8le:R%C3%A9unions2011&amp;diff=7248"/>
		<updated>2013-01-16T23:50:47Z</updated>

		<summary type="html">&lt;p&gt;Xavier.bonnetain : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* [[Réunion:2012-12-20_Kes-BR| Réunion avec la Kès du 20 décembre 2012]]&lt;br /&gt;
* [[Réunion:2012-12-19_Magnan_BR-ENSTA|Magnan-BR du 19 décembre 2012, avec l'ENSTA]]&lt;br /&gt;
* [[Réunion:2013-01-16_1ere|1ère Réunion BR 2011 du 16 janvier 2013]]&lt;/div&gt;</summary>
		<author><name>Xavier.bonnetain</name></author>
	</entry>
	<entry>
		<id>https://wikibr.binets.fr/index.php?title=BR2011&amp;diff=7247</id>
		<title>BR2011</title>
		<link rel="alternate" type="text/html" href="https://wikibr.binets.fr/index.php?title=BR2011&amp;diff=7247"/>
		<updated>2013-01-16T23:48:36Z</updated>

		<summary type="html">&lt;p&gt;Xavier.bonnetain : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{menu BR}}&lt;br /&gt;
&lt;br /&gt;
===== Membres du BR 2011 =====&lt;br /&gt;
{| border=0 align=center&lt;br /&gt;
| ||| Victor BERGER (levans) ||| ''' prez | root | dev '''&lt;br /&gt;
|-&lt;br /&gt;
| ||| Xavier BONNETAIN (havelock) ||| ''' vprez | root | dev | fkz4 '''&lt;br /&gt;
|-&lt;br /&gt;
| ||| Théo COMBE (thunder) ||| ''' trez | dev | root '''&lt;br /&gt;
|-&lt;br /&gt;
| ||| Michel BLANCARD (gerard) ||| ''' screz | dev | root '''&lt;br /&gt;
|-&lt;br /&gt;
| ||| Olivier GAUTHÉ (arcos) ||| ''' web '''&lt;br /&gt;
|-&lt;br /&gt;
| ||| Chantal DING (talchan) ||| ''' web '''&lt;br /&gt;
|-&lt;br /&gt;
| ||| Jean-Mathieu TEISSIER (gnogno) ||| ''' web '''&lt;br /&gt;
|-&lt;br /&gt;
| ||| Jean-Matthieu GALLARD (JM) ||| ''' web '''&lt;br /&gt;
|-&lt;br /&gt;
| ||| Robin Larrieu (gaunt) ||| ''' dev '''&lt;br /&gt;
|-&lt;br /&gt;
| ||| François ESPINET (netix) ||| ''' dev '''&lt;br /&gt;
|-&lt;br /&gt;
| ||| Gabriel GOUVINE (alnurn) ||| ''' dev '''&lt;br /&gt;
|-&lt;br /&gt;
| ||| Hoang-Chuong TRAN (thchuong) ||| ''' '''&lt;br /&gt;
|-&lt;br /&gt;
| ||| Jean-Matthieu GALLARD ||| ''' dev '''&lt;br /&gt;
|-&lt;br /&gt;
| ||| Olivier GAUTHÉ (arcos) ||| ''' '''&lt;br /&gt;
|-&lt;br /&gt;
| ||| Chantal DING (talchan) ||| ''' '''&lt;br /&gt;
|-&lt;br /&gt;
| ||| Zelda MARIET (triforce) ||| ''' dev '''&lt;br /&gt;
|-&lt;br /&gt;
| ||| Pierre-Alexandre Murena (pam) ||| ''' dev '''&lt;br /&gt;
|-&lt;br /&gt;
| ||| Arturo RUANO SAN MARTIN ||| ''' '''&lt;br /&gt;
|-&lt;br /&gt;
| ||| Thomas FERREIRA DE LIMA (tedima) ||| ''' dev '''&lt;br /&gt;
|-&lt;br /&gt;
| ||| Omar EL EUCH (omareuch) ||| ''' '''&lt;br /&gt;
|-&lt;br /&gt;
| ||| Carlo FERRARI (carlal) ||| ''' '''&lt;br /&gt;
|-&lt;br /&gt;
| ||| Arthur JUNG ||| ''' '''&lt;br /&gt;
|-&lt;br /&gt;
| ||| Cheick Mohady SISSIKO (wcicheick) ||| ''' '''&lt;br /&gt;
|-&lt;br /&gt;
| ||| Yi REN (bci) ||| ''' '''&lt;br /&gt;
|-&lt;br /&gt;
| ||| Guillaume LAMPLE (guismay) ||| ''' '''&lt;br /&gt;
|-&lt;br /&gt;
| ||| Neeraj BAPAT (fisher ||| ''' '''&lt;br /&gt;
|-&lt;br /&gt;
| ||| Titouan RIGOUDY (titz) ||| ''' '''&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Xavier.bonnetain</name></author>
	</entry>
	<entry>
		<id>https://wikibr.binets.fr/index.php?title=Mod%C3%A8le:Content_Root_Toolbox&amp;diff=7236</id>
		<title>Modèle:Content Root Toolbox</title>
		<link rel="alternate" type="text/html" href="https://wikibr.binets.fr/index.php?title=Mod%C3%A8le:Content_Root_Toolbox&amp;diff=7236"/>
		<updated>2013-01-10T23:43:10Z</updated>

		<summary type="html">&lt;p&gt;Xavier.bonnetain : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{|&lt;br /&gt;
|&lt;br /&gt;
* [[Admin:Mise_à_jour|Mise à jour]]&lt;br /&gt;
* [[BR:Overlay|Overlay BR]]&lt;br /&gt;
* [[Admin:UID|UID root]]&lt;br /&gt;
* [[Admin:Subversion|Subversion]]&lt;br /&gt;
* [[Git|Git]]&lt;br /&gt;
* [[Admin:SVN_Root|SVN Root]]&lt;br /&gt;
* [[Admin:Cron|Cron]]&lt;br /&gt;
* [[Admin:NTP|NTP]]&lt;br /&gt;
* [[Admin:Kvm|Kvm]]&lt;br /&gt;
|&lt;br /&gt;
* [[Admin:Framebuffer|Framebuffer]]&lt;br /&gt;
* [[Admin:Postfix|Postfix]]&lt;br /&gt;
* [[Admin:Apache|Apache]]&lt;br /&gt;
* [[Admin:DNS|Bind]] / [[Admin:Dns_App|Dns App]]&lt;br /&gt;
* [[Admin:LDAP|LDAP]]&lt;br /&gt;
* [[Admin:Monitoring|Monitoring]]&lt;br /&gt;
* [[Admin:Onduleur|Onduleur]]&lt;br /&gt;
* [[Admin:CertificatsSSL|Certificats SSL]]&lt;br /&gt;
* [[Admin:Trac|Trac]]&lt;br /&gt;
|&lt;br /&gt;
* [[Admin:Yubikeys|Yubikeys]]&lt;br /&gt;
* [[Admin:Espace disque|Espace disque]]&lt;br /&gt;
* [[Admin:Espace disque#Logrotate|Logrotate]]&lt;br /&gt;
* [[Admin:Backups|Sauvegardes]]&lt;br /&gt;
* [[Admin:Quota|Quota]]&lt;br /&gt;
* [[Admin:Raid|Raid]]&lt;br /&gt;
* [[Admin:Logical volume|Logical volume]]&lt;br /&gt;
* [[Admin:Swap|Swap]]&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Xavier.bonnetain</name></author>
	</entry>
	<entry>
		<id>https://wikibr.binets.fr/index.php?title=Mod%C3%A8le:R%C3%A9unions2011&amp;diff=7229</id>
		<title>Modèle:Réunions2011</title>
		<link rel="alternate" type="text/html" href="https://wikibr.binets.fr/index.php?title=Mod%C3%A8le:R%C3%A9unions2011&amp;diff=7229"/>
		<updated>2012-12-20T07:31:29Z</updated>

		<summary type="html">&lt;p&gt;Xavier.bonnetain : Réunion Kès&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* [[Réunion:2012-12-19_Magnan_BR-ENSTA|Magnan-BR du 19 décembre 2012, avec l'ENSTA]]&lt;br /&gt;
* [[Réunion:2012-12-20_Kes-BR| Kès-BR du 20 décembre 2012]]&lt;/div&gt;</summary>
		<author><name>Xavier.bonnetain</name></author>
	</entry>
	<entry>
		<id>https://wikibr.binets.fr/index.php?title=Mod%C3%A8le:Content_support_t%C3%A9l%C3%A9phone_2k12&amp;diff=7205</id>
		<title>Modèle:Content support téléphone 2k12</title>
		<link rel="alternate" type="text/html" href="https://wikibr.binets.fr/index.php?title=Mod%C3%A8le:Content_support_t%C3%A9l%C3%A9phone_2k12&amp;diff=7205"/>
		<updated>2012-12-13T17:14:34Z</updated>

		<summary type="html">&lt;p&gt;Xavier.bonnetain : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* Victor &amp;quot;Levans&amp;quot; Berger (prez)&lt;br /&gt;
 78 31&lt;br /&gt;
* Xavier &amp;quot;Havelock&amp;quot; Bonnetain (vprez)&lt;br /&gt;
 78 93&lt;br /&gt;
* Théo &amp;quot;Thunder&amp;quot; Combe (root)&lt;br /&gt;
 78 37&lt;br /&gt;
* Gabriel &amp;quot;Alnurn&amp;quot; Gouvine (root)&lt;br /&gt;
  78 82&lt;br /&gt;
&lt;br /&gt;
En dernier recours, tu peux aussi essayer de [[Modèle:Content_support_téléphone_2k10|contacter un BRman 2010]].&lt;/div&gt;</summary>
		<author><name>Xavier.bonnetain</name></author>
	</entry>
	<entry>
		<id>https://wikibr.binets.fr/index.php?title=Mod%C3%A8le:Content_support_t%C3%A9l%C3%A9phone&amp;diff=7204</id>
		<title>Modèle:Content support téléphone</title>
		<link rel="alternate" type="text/html" href="https://wikibr.binets.fr/index.php?title=Mod%C3%A8le:Content_support_t%C3%A9l%C3%A9phone&amp;diff=7204"/>
		<updated>2012-12-13T17:14:01Z</updated>

		<summary type="html">&lt;p&gt;Xavier.bonnetain : MaJ post-passation&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* Pour les entreprises qui veulent contacter des élèves mais qui ne veulent pas spécialement entrer en contact avec le binet réseau, il est préférable de contacter la Kès des élèves par mail à kes@eleves.polytechnique.fr ou par téléphone&lt;br /&gt;
  06 88 71 29 98&lt;br /&gt;
  06 72 00 54 53&lt;br /&gt;
&lt;br /&gt;
* Les numéros de téléphone à jour sont sur [https://www.frankiz.net/groups/see/br Frankiz]&lt;br /&gt;
&lt;br /&gt;
{{Content_support_téléphone_2k11}}&lt;/div&gt;</summary>
		<author><name>Xavier.bonnetain</name></author>
	</entry>
</feed>