<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Anis Berejeb &#187; tutoriel</title>
	<atom:link href="http://www.berejeb.com/tag/tutoriel/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.berejeb.com</link>
	<description>Actualites et nouveautes du developpement web, PHP, MySQL, HTTP, JavaScript, Performance</description>
	<lastBuildDate>Sat, 17 Sep 2011 16:38:12 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Besoin d&#8217;un logger? Utilisez Log4php!</title>
		<link>http://www.berejeb.com/2010/11/besoin-dun-logger-utilisez-log4php/</link>
		<comments>http://www.berejeb.com/2010/11/besoin-dun-logger-utilisez-log4php/#comments</comments>
		<pubDate>Thu, 25 Nov 2010 13:25:12 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[apache log]]></category>
		<category><![CDATA[daily loggers]]></category>
		<category><![CDATA[log]]></category>
		<category><![CDATA[log hierarchy]]></category>
		<category><![CDATA[log inheritance]]></category>
		<category><![CDATA[log levels]]></category>
		<category><![CDATA[log rotation]]></category>
		<category><![CDATA[log4j]]></category>
		<category><![CDATA[log4net]]></category>
		<category><![CDATA[logger]]></category>
		<category><![CDATA[logger framework]]></category>
		<category><![CDATA[logging errors]]></category>
		<category><![CDATA[php5]]></category>
		<category><![CDATA[tutorial]]></category>
		<category><![CDATA[tutoriel]]></category>

		<guid isPermaLink="false">http://www.berejeb.com/?p=1713</guid>
		<description><![CDATA[L&#8217;un des problèmes communs quand on développe une application, ou quand on intégre différents composants, est le logging. On veut avoir des niveaux de logging différents. On veut aussi pouvoir loguer sur le système de fichiers,  envoyer des emails pour les problèmes plus urgents etc. Pour développer un systeme pareil from scratch, j&#8217;imagine que la tache ne sera pas aussi simple. En effet, il existe Deja un framework Complet [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.berejeb.com/wp-content/uploads/2010/11/log4php.png"><img class="size-full wp-image-1718 alignleft" style="margin-right: 5px; margin-bottom: 5px;" title="log4php" src="http://www.berejeb.com/wp-content/uploads/2010/11/log4php.png" alt="" width="200" height="200" /></a></p>
<p>L&#8217;un des problèmes communs quand on développe une application, ou quand on intégre différents composants, est le logging. On veut avoir des niveaux de logging différents. On veut aussi pouvoir loguer sur le système de fichiers,  envoyer des emails pour les problèmes plus urgents etc. Pour développer un systeme pareil from scratch, j&#8217;imagine que la tache ne sera pas aussi simple.</p>
<p>En effet, il existe Deja un framework Complet pour la gestion de cette tache, le projet <strong>Apache Log4php</strong>! Log4php est écrit PHP . Les habitués de Java et .Net reconnaîtront tout de suite le modèle, Log4php est en fait un portage de <strong>Log4j</strong> et <strong>Log4Net</strong> déjà existants dans ces deux langages. Éventuellement, le framework présente les memes notions et fonctionnalités.<br />
Regardons ce que Log4php sait faire et comment l&#8217;utiliser :</p>
<h2>Fonctionnalités</h2>
<ul>
<li>Configuration via des fichiers XML ou ini avec la même structure que Log4j</li>
<li>Gestion de loggers hiérarchiques</li>
<li>Support de logging sur : fichier, fichier journalier, console, mail, pdo, erreurs php, logs système ou évènements NT (windows), sockets.</li>
<li>Rotation de logs</li>
<li>Layouts standard : Simple, TTCC, Pattern, HTML et XML</li>
<li>gestion d&#8217;erreurs hiérarchiques : log, warn, error, fatal etc.</li>
</ul>
<h2>Installation</h2>
<ul>
<li><a href="http://logging.apache.org/log4php/download.html">Telecharger</a> Log4php et decompressez le.</li>
<li>Copier le repertoire  src/main/php dans votre application</li>
<li>include/require la classe Logger (log4php/Logger.php) dans vos scripts</li>
</ul>
<h2>Comment ca marche?</h2>
<h2><strong>Loggers, Appenders and Layouts</strong></h2>
<p>Log4php possède trois composants principaux: les loggers,  les appenders et les layouts.</p>
<ul>
<li>Les loggers s&#8217;occupent de loguer les messages selon le type de message et le niveau de loging.</li>
<li>Les appenders quant a eux, déterminent ou le logging se fait (fichier, mail, bd etc.).</li>
<li>Enfin, les Layouts permettent de formater les messages rapportés.</li>
</ul>
<h2>Exemples</h2>
<h3>Exemple de base</h3>
<p>Voici un exemple de base d&#8217;un logger qui affiche les résultats en console et expose les méthodes pouvant etre appelées sur un logger :</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p1713code7'); return false;">View Code</a> PHP</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p17137"><td class="line_numbers"><pre>1
2
3
4
5
6
</pre></td><td class="code" id="p1713code7"><pre class="php" style="font-family:monospace;">   <span style="color: #b1b100;">require_once</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'log4php/Logger.php'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
  <span style="color: #000088;">$logger</span> <span style="color: #339933;">=</span> Logger<span style="color: #339933;">::</span><span style="color: #004000;">getLogger</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;main&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
  <span style="color: #000088;">$logger</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">info</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;foo&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
  <span style="color: #000088;">$logger</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">warn</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;bar&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
  <span style="color: #000088;">$logger</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">error</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;urgent&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
  <span style="color: #000088;">$logger</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">fatal</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Fatal!&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></td></tr></table></div>

<p>Ce code affiche</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p1713code8'); return false;">View Code</a> SHELL</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p17138"><td class="line_numbers"><pre>1
2
3
4
</pre></td><td class="code" id="p1713code8"><pre class="shell" style="font-family:monospace;">Wed Nov 24 20:40:10 2010 [10093] INFO main - foo
Wed Nov 24 20:40:10 2010 [10093] WARN main - bar
Wed Nov 24 20:40:10 2010 [10093] ERROR main - urgent
Wed Nov 24 20:40:10 2010 [10093] FATAL main - Fatal!</pre></td></tr></table></div>

<h3>Utiliser un fichier de configuration</h3>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p1713code9'); return false;">View Code</a> SHELL</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p17139"><td class="line_numbers"><pre>1
2
3
4
5
</pre></td><td class="code" id="p1713code9"><pre class="shell" style="font-family:monospace;">log4php.appender.default = LoggerAppenderEcho
    log4php.appender.default.layout = LoggerLayoutSimple
    log4php.rootLogger = WARN, default
    log4php.logger.mylogger = INFO, default
    log4php.additivity.mylogger = &quot;false&quot;</pre></td></tr></table></div>

<p>Il est possible de définir une configuration dans un fichier ini. La configuration qui suit spécifie que l&#8217;appender par défaut utilisera la console (<strong>LoggerAppenderEcho</strong>) et un template (<strong>LoggerLayoutSimple</strong>). Le logger par défaut (<strong>rootLogger</strong>) loguera les messages a partir du niveau WARNING (et donc pas les message INFO). Un autre logger &laquo;&nbsp;<strong>myLogger</strong>&nbsp;&raquo; s&#8217;occupera de loguer les messages INFO. L&#8217;information<strong><em> additivity.mylogger = false</em></strong> indique que le niveau de propagation de l&#8217;erreur ne va pas en dessous du logger mylogger (Par defaut, le message se propage aux parents du logger).<br />
Sauvegardez ces lignes en un fichier ini &#8211; disons config.ini &#8211;  et appelez le depuis votre code. Voici un exemple :</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p1713code10'); return false;">View Code</a> PHP</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p171310"><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
</pre></td><td class="code" id="p1713code10"><pre class="php" style="font-family:monospace;">  <span style="color: #b1b100;">require_once</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'log4php/Logger.php'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
  Logger<span style="color: #339933;">::</span><span style="color: #004000;">configure</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'config.ini'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
  <span style="color: #000000; font-weight: bold;">class</span> MyClass <span style="color: #009900;">&#123;</span>
     <span style="color: #000000; font-weight: bold;">private</span> <span style="color: #000088;">$logger</span><span style="color: #339933;">;</span>
&nbsp;
     <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">function</span> __construct<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
         <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">logger</span> <span style="color: #339933;">=</span> Logger<span style="color: #339933;">::</span><span style="color: #004000;">getLogger</span><span style="color: #009900;">&#40;</span><span style="color: #009900; font-weight: bold;">__CLASS__</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
         <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">logger</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">debug</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'Dans le constructeur!'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
     <span style="color: #009900;">&#125;</span>
  <span style="color: #009900;">&#125;</span> 
&nbsp;
  <span style="color: #000088;">$logger</span> <span style="color: #339933;">=</span> Logger<span style="color: #339933;">::</span><span style="color: #004000;">getLogger</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'main'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
  <span style="color: #000088;">$logger</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">info</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'Warning externe'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
  <span style="color: #000000; font-weight: bold;">new</span> MyClass<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></td></tr></table></div>

<p>Ceci affiche :</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p1713code11'); return false;">View Code</a> SHELL</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p171311"><td class="line_numbers"><pre>1
</pre></td><td class="code" id="p1713code11"><pre class="shell" style="font-family:monospace;">  DEBUG - Dans le constructeur!</pre></td></tr></table></div>

<p>Vous remarquerez que l&#8217;appel d&#8217;un logger non déclaré (&#8216;main&#8217; dans l&#8217;exemple) appellera le rootLogger. Aussi, vous remarquerez l&#8217;instanciation du logger en se servant de __CLASS__. De cette façon vous pouvez avoir un logger différent pour chacune de vos classes.</p>
<h2>Héritage et niveaux de logs</h2>
<h3>Héritage de logs</h3>
<p>Il est possible de faire heriter des loggers en utilisant des points comme separateurs dans les noms de logs (foo, foo.bar, foo.bar.x etc.). Le logger root est le parent de la hiérarchie, il est toujours présent et ne peut pas etre appelé par nom. pour l&#8217;appeler, utilisez plutot la méthode statique <strong><em>getRootLogger</em></strong>.</p>
<h3>Niveaux de logs</h3>
<p>Log4php permet de gérer cinq niveaux de base de logging :<strong> DEBUG</strong>, <strong>INFO</strong>, <strong>WARN</strong>, <strong>ERROR</strong> et <strong>FATAL</strong>. Log4php assume que ces niveaux sont ordonnés de cette facon :<br />
DEBUG < INFO < WARN < ERROR < FATAL.<br />
Prenons un exemple :</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p1713code12'); return false;">View Code</a> PHP</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p171312"><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
</pre></td><td class="code" id="p1713code12"><pre class="php" style="font-family:monospace;">   <span style="color: #666666; font-style: italic;">// Recurperer une instance appelee &quot;com.foo&quot;</span>
   <span style="color: #000088;">$logger</span> <span style="color: #339933;">=</span> Logger<span style="color: #339933;">::</span><span style="color: #004000;">getLogger</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;com.foo&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
   <span style="color: #666666; font-style: italic;">// setLevel permet de setter le niveau de logging, Normalement</span>
   <span style="color: #666666; font-style: italic;">// Vous n'avez pas a indiquer ceci programaticallement, vous</span>
   <span style="color: #666666; font-style: italic;">// le faites plutot dans un fichier de configuration</span>
   <span style="color: #000088;">$logger</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">setLevel</span><span style="color: #009900;">&#40;</span>LoggerLevel<span style="color: #339933;">::</span><span style="color: #004000;">INFO</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
   <span style="color: #666666; font-style: italic;">// com.foo.Bar herite de com.foo</span>
   <span style="color: #000088;">$barlogger</span> <span style="color: #339933;">=</span> Logger<span style="color: #339933;">::</span><span style="color: #004000;">getLogger</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;com.foo.Bar&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
   <span style="color: #666666; font-style: italic;">// on peut executer la methode warn puisque  WARN &gt;= INFO.</span>
   <span style="color: #000088;">$logger</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">warn</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Warning message&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
   <span style="color: #666666; font-style: italic;">// On ne peux pas executer cette methode puisque DEBUG &lt; INFO.    $logger-&gt;debug(&quot;Debug message&quot;);</span>
&nbsp;
   <span style="color: #666666; font-style: italic;">// $barlogger (com.foo.Bar) va heriter son niveau de $logger (com.foo)</span>
   <span style="color: #666666; font-style: italic;">// donc, la methode info pourra etre appelee puisque INFO &gt;= INFO</span>
   <span style="color: #000088;">$barlogger</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">info</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Informations&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
   <span style="color: #666666; font-style: italic;">// De meme pour barlogger, cette methode ne peux pas etre appelee puisque DEBUG &lt; INFO.    $barlogger-&gt;debug(&quot;Exiting gas station search&quot;);</span></pre></td></tr></table></div>

<h2>Conclusion</h2>
<p>Le présent tutoriel a été fortement inspiré par la documentation officielle. Vous trouverez des explications et des exemples plus complets sur les différentes notions sur le site officiel.<br />
Log4php est un framework complet et qui suit les standards de logging. Aussi, il est supporté par Apache, ce qui vous donne une confiance d&#8217;utilisation. J&#8217;ai commencé a l’intégrer pour la prochaine version de <a href="http://simplemvc.berejeb.com">Simple MVC</a> et je peux vous dire que c&#8217;est du pur plaisir! A utiliser sans hésitation!</p>
<h2>Liens</h2>
<p><strong>Téléchargement</strong> : <a href="http://logging.apache.org/log4php/download.html">http://logging.apache.org/log4php/download.html</a><br />
<strong> Documentation</strong> : <a href="http://logging.apache.org/log4php/docs/introduction.html">http://logging.apache.org/log4php/docs/introduction.html</a></p>

<div class="sociable">
<div class="sociable_tagline">
Partager :
</div>
<ul>
	<li class="sociablefirst"><a rel="nofollow"  target="_blank" href="http://www.printfriendly.com/print?url=http%3A%2F%2Fwww.berejeb.com%2F2010%2F11%2Fbesoin-dun-logger-utilisez-log4php%2F&amp;partner=sociable" title="Print"><img src="http://www.berejeb.com/wp-content/plugins/sociable/images/printfriendly.png" title="Print" alt="Print" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  target="_blank" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fwww.berejeb.com%2F2010%2F11%2Fbesoin-dun-logger-utilisez-log4php%2F&amp;title=Besoin%20d%27un%20logger%3F%20Utilisez%20Log4php%21&amp;bodytext=%0D%0A%0D%0AL%27un%20des%C2%A0probl%C3%A8mes%C2%A0communs%20quand%20on%C2%A0d%C3%A9veloppe%C2%A0une%20application%2C%20ou%20quand%20on%C2%A0int%C3%A9gre%C2%A0diff%C3%A9rents%C2%A0composants%2C%20est%20le%20logging.%20On%20veut%20avoir%20des%20niveaux%20de%20logging%C2%A0diff%C3%A9rents.%20On%20veut%20aussi%20pouvoir%20loguer%20sur%20le%C2%A0syst%C3%A8me%C2%A0de%20fichiers%2C%20%C2%A0" title="Digg"><img src="http://www.berejeb.com/wp-content/plugins/sociable/images/digg.png" title="Digg" alt="Digg" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  target="_blank" href="http://delicious.com/post?url=http%3A%2F%2Fwww.berejeb.com%2F2010%2F11%2Fbesoin-dun-logger-utilisez-log4php%2F&amp;title=Besoin%20d%27un%20logger%3F%20Utilisez%20Log4php%21&amp;notes=%0D%0A%0D%0AL%27un%20des%C2%A0probl%C3%A8mes%C2%A0communs%20quand%20on%C2%A0d%C3%A9veloppe%C2%A0une%20application%2C%20ou%20quand%20on%C2%A0int%C3%A9gre%C2%A0diff%C3%A9rents%C2%A0composants%2C%20est%20le%20logging.%20On%20veut%20avoir%20des%20niveaux%20de%20logging%C2%A0diff%C3%A9rents.%20On%20veut%20aussi%20pouvoir%20loguer%20sur%20le%C2%A0syst%C3%A8me%C2%A0de%20fichiers%2C%20%C2%A0" title="del.icio.us"><img src="http://www.berejeb.com/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  target="_blank" href="http://www.facebook.com/share.php?u=http%3A%2F%2Fwww.berejeb.com%2F2010%2F11%2Fbesoin-dun-logger-utilisez-log4php%2F&amp;t=Besoin%20d%27un%20logger%3F%20Utilisez%20Log4php%21" title="Facebook"><img src="http://www.berejeb.com/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  target="_blank" href="http://www.google.com/bookmarks/mark?op=edit&amp;bkmk=http%3A%2F%2Fwww.berejeb.com%2F2010%2F11%2Fbesoin-dun-logger-utilisez-log4php%2F&amp;title=Besoin%20d%27un%20logger%3F%20Utilisez%20Log4php%21&amp;annotation=%0D%0A%0D%0AL%27un%20des%C2%A0probl%C3%A8mes%C2%A0communs%20quand%20on%C2%A0d%C3%A9veloppe%C2%A0une%20application%2C%20ou%20quand%20on%C2%A0int%C3%A9gre%C2%A0diff%C3%A9rents%C2%A0composants%2C%20est%20le%20logging.%20On%20veut%20avoir%20des%20niveaux%20de%20logging%C2%A0diff%C3%A9rents.%20On%20veut%20aussi%20pouvoir%20loguer%20sur%20le%C2%A0syst%C3%A8me%C2%A0de%20fichiers%2C%20%C2%A0" title="Google Bookmarks"><img src="http://www.berejeb.com/wp-content/plugins/sociable/images/googlebookmark.png" title="Google Bookmarks" alt="Google Bookmarks" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  target="_blank" href="https://favorites.live.com/quickadd.aspx?marklet=1&amp;url=http%3A%2F%2Fwww.berejeb.com%2F2010%2F11%2Fbesoin-dun-logger-utilisez-log4php%2F&amp;title=Besoin%20d%27un%20logger%3F%20Utilisez%20Log4php%21" title="Live"><img src="http://www.berejeb.com/wp-content/plugins/sociable/images/live.png" title="Live" alt="Live" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  target="_blank" href="http://reporter.nl.msn.com/?fn=contribute&amp;Title=Besoin%20d%27un%20logger%3F%20Utilisez%20Log4php%21&amp;URL=http%3A%2F%2Fwww.berejeb.com%2F2010%2F11%2Fbesoin-dun-logger-utilisez-log4php%2F&amp;cat_id=6&amp;tag_id=31&amp;Remark=%0D%0A%0D%0AL%27un%20des%C2%A0probl%C3%A8mes%C2%A0communs%20quand%20on%C2%A0d%C3%A9veloppe%C2%A0une%20application%2C%20ou%20quand%20on%C2%A0int%C3%A9gre%C2%A0diff%C3%A9rents%C2%A0composants%2C%20est%20le%20logging.%20On%20veut%20avoir%20des%20niveaux%20de%20logging%C2%A0diff%C3%A9rents.%20On%20veut%20aussi%20pouvoir%20loguer%20sur%20le%C2%A0syst%C3%A8me%C2%A0de%20fichiers%2C%20%C2%A0" title="MSN Reporter"><img src="http://www.berejeb.com/wp-content/plugins/sociable/images/msnreporter.png" title="MSN Reporter" alt="MSN Reporter" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  target="_blank" href="http://www.netvibes.com/share?title=Besoin%20d%27un%20logger%3F%20Utilisez%20Log4php%21&amp;url=http%3A%2F%2Fwww.berejeb.com%2F2010%2F11%2Fbesoin-dun-logger-utilisez-log4php%2F" title="Netvibes"><img src="http://www.berejeb.com/wp-content/plugins/sociable/images/netvibes.png" title="Netvibes" alt="Netvibes" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  target="_blank" href="http://technorati.com/faves?add=http%3A%2F%2Fwww.berejeb.com%2F2010%2F11%2Fbesoin-dun-logger-utilisez-log4php%2F" title="Technorati"><img src="http://www.berejeb.com/wp-content/plugins/sociable/images/technorati.png" title="Technorati" alt="Technorati" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  target="_blank" href="http://twitter.com/home?status=Besoin%20d%27un%20logger%3F%20Utilisez%20Log4php%21%20-%20http%3A%2F%2Fwww.berejeb.com%2F2010%2F11%2Fbesoin-dun-logger-utilisez-log4php%2F" title="Twitter"><img src="http://www.berejeb.com/wp-content/plugins/sociable/images/twitter.png" title="Twitter" alt="Twitter" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  target="_blank" href="http://bookmarks.yahoo.com/toolbar/savebm?u=http%3A%2F%2Fwww.berejeb.com%2F2010%2F11%2Fbesoin-dun-logger-utilisez-log4php%2F&amp;t=Besoin%20d%27un%20logger%3F%20Utilisez%20Log4php%21&opener=bm&amp;ei=UTF-8&amp;d=%0D%0A%0D%0AL%27un%20des%C2%A0probl%C3%A8mes%C2%A0communs%20quand%20on%C2%A0d%C3%A9veloppe%C2%A0une%20application%2C%20ou%20quand%20on%C2%A0int%C3%A9gre%C2%A0diff%C3%A9rents%C2%A0composants%2C%20est%20le%20logging.%20On%20veut%20avoir%20des%20niveaux%20de%20logging%C2%A0diff%C3%A9rents.%20On%20veut%20aussi%20pouvoir%20loguer%20sur%20le%C2%A0syst%C3%A8me%C2%A0de%20fichiers%2C%20%C2%A0" title="Yahoo! Bookmarks"><img src="http://www.berejeb.com/wp-content/plugins/sociable/images/yahoomyweb.png" title="Yahoo! Bookmarks" alt="Yahoo! Bookmarks" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  target="_blank" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fwww.berejeb.com%2F2010%2F11%2Fbesoin-dun-logger-utilisez-log4php%2F&amp;title=Besoin%20d%27un%20logger%3F%20Utilisez%20Log4php%21&amp;source=Anis+Berejeb+Actualites+et+nouveautes+du+developpement+web%2C+PHP%2C+MySQL%2C+HTTP%2C+JavaScript%2C+Performance&amp;summary=%0D%0A%0D%0AL%27un%20des%C2%A0probl%C3%A8mes%C2%A0communs%20quand%20on%C2%A0d%C3%A9veloppe%C2%A0une%20application%2C%20ou%20quand%20on%C2%A0int%C3%A9gre%C2%A0diff%C3%A9rents%C2%A0composants%2C%20est%20le%20logging.%20On%20veut%20avoir%20des%20niveaux%20de%20logging%C2%A0diff%C3%A9rents.%20On%20veut%20aussi%20pouvoir%20loguer%20sur%20le%C2%A0syst%C3%A8me%C2%A0de%20fichiers%2C%20%C2%A0" title="LinkedIn"><img src="http://www.berejeb.com/wp-content/plugins/sociable/images/linkedin.png" title="LinkedIn" alt="LinkedIn" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  target="_blank" href="http://www.dzone.com/links/add.html?url=http%3A%2F%2Fwww.berejeb.com%2F2010%2F11%2Fbesoin-dun-logger-utilisez-log4php%2F&amp;title=Besoin%20d%27un%20logger%3F%20Utilisez%20Log4php%21" title="DZone"><img src="http://www.berejeb.com/wp-content/plugins/sociable/images/dzone.png" title="DZone" alt="DZone" class="sociable-hovers" /></a></li>
	<li class="sociablelast"><a rel="nofollow"  target="_blank" href="http://www.viadeo.com/shareit/share/?url=http%3A%2F%2Fwww.berejeb.com%2F2010%2F11%2Fbesoin-dun-logger-utilisez-log4php%2F&title=Besoin%20d%27un%20logger%3F%20Utilisez%20Log4php%21&urllanguage=fr" title="viadeo FR"><img src="http://www.berejeb.com/wp-content/plugins/sociable/images/viadeo.png" title="viadeo FR" alt="viadeo FR" class="sociable-hovers" /></a></li>
</ul>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.berejeb.com/2010/11/besoin-dun-logger-utilisez-log4php/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Tutoriel : developper un previsualiseur de nouvelles avec jQuery</title>
		<link>http://www.berejeb.com/2010/10/tutoriel-developper-un-previsualiseur-de-nouvelles-avec-jquery/</link>
		<comments>http://www.berejeb.com/2010/10/tutoriel-developper-un-previsualiseur-de-nouvelles-avec-jquery/#comments</comments>
		<pubDate>Thu, 14 Oct 2010 08:54:26 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[JAVASCRIPT]]></category>
		<category><![CDATA[compactnewspreviewer]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[tutorial]]></category>
		<category><![CDATA[tutoriel]]></category>

		<guid isPermaLink="false">http://www.berejeb.com/?p=1634</guid>
		<description><![CDATA[Tympanus.net présente un tutoriel assez cool qui montre comment développer en jQuery un  Previsualiseur de nouvelles qui vous permet d&#8217;afficher dans un mode compact une série d&#8217;articles. Les articles sont affichés en liste avec pagination. Le clic sur un item affiche la description et un lien vers le détail complet de l&#8217;article. Le skin est personnalisable via CSS. Le tutoriel : http://tympanus.net/codrops/2010/10/03/compact-news-previewer/ La demonstration [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.berejeb.com/wp-content/uploads/2010/10/news-reader-jquery.jpg"><img class="alignnone size-full wp-image-1635" title="news-reader-jquery" src="http://www.berejeb.com/wp-content/uploads/2010/10/news-reader-jquery.jpg" alt="" width="480" height="300" /></a></p>
<p><a href="http://tympanus.net/" target="_blank">Tympanus.net</a> présente un <a href="http://tympanus.net/codrops/2010/10/03/compact-news-previewer/" target="_blank">tutoriel</a> assez cool qui montre comment développer en jQuery un  <a title="Compact News Previewer" href="http://tympanus.net/codrops/2010/10/03/compact-news-previewer/" target="_blank"><strong><em>Previsualiseur de nouvelles</em></strong></a> qui vous permet d&#8217;afficher dans un mode compact une série d&#8217;articles. Les articles sont affichés en liste avec pagination. Le clic sur un item affiche la description et un lien vers le détail complet de l&#8217;article. Le skin est personnalisable via CSS.</p>
<ul>
<li>Le tutoriel : <a href="http://tympanus.net/codrops/2010/10/03/compact-news-previewer/">http://tympanus.net/codrops/2010/10/03/compact-news-previewer/</a></li>
<li>La demonstration : <a href="http://tympanus.net/Tutorials/CompactNewsPreviewer/" target="_blank">http://tympanus.net/Tutorials/CompactNewsPreviewer/</a></li>
<li>Telechargement : <a href="http://tympanus.net/Tutorials/CompactNewsPreviewer/CompactNewsPreviewer.zip" target="_blank">http://tympanus.net/Tutorials/CompactNewsPreviewer/CompactNewsPreviewer.zip</a></li>
</ul>

<div class="sociable">
<div class="sociable_tagline">
Partager :
</div>
<ul>
	<li class="sociablefirst"><a rel="nofollow"  target="_blank" href="http://www.printfriendly.com/print?url=http%3A%2F%2Fwww.berejeb.com%2F2010%2F10%2Ftutoriel-developper-un-previsualiseur-de-nouvelles-avec-jquery%2F&amp;partner=sociable" title="Print"><img src="http://www.berejeb.com/wp-content/plugins/sociable/images/printfriendly.png" title="Print" alt="Print" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  target="_blank" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fwww.berejeb.com%2F2010%2F10%2Ftutoriel-developper-un-previsualiseur-de-nouvelles-avec-jquery%2F&amp;title=Tutoriel%20%3A%20developper%20un%20previsualiseur%20de%20nouvelles%20avec%20jQuery&amp;bodytext=%0D%0A%0D%0ATympanus.net%20pr%C3%A9sente%C2%A0un%20tutoriel%20assez%20cool%20qui%20montre%20comment%C2%A0d%C3%A9velopper%C2%A0en%20jQuery%20un%20%C2%A0Previsualiseur%20de%20nouvelles%20qui%20vous%20permet%20d%27afficher%20dans%20un%20mode%20compact%20une%C2%A0s%C3%A9rie%C2%A0d%27articles.%20Les%20articles%20sont%C2%A0affich%C3%A9s%C2%A0en%20liste%20avec%20pagina" title="Digg"><img src="http://www.berejeb.com/wp-content/plugins/sociable/images/digg.png" title="Digg" alt="Digg" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  target="_blank" href="http://delicious.com/post?url=http%3A%2F%2Fwww.berejeb.com%2F2010%2F10%2Ftutoriel-developper-un-previsualiseur-de-nouvelles-avec-jquery%2F&amp;title=Tutoriel%20%3A%20developper%20un%20previsualiseur%20de%20nouvelles%20avec%20jQuery&amp;notes=%0D%0A%0D%0ATympanus.net%20pr%C3%A9sente%C2%A0un%20tutoriel%20assez%20cool%20qui%20montre%20comment%C2%A0d%C3%A9velopper%C2%A0en%20jQuery%20un%20%C2%A0Previsualiseur%20de%20nouvelles%20qui%20vous%20permet%20d%27afficher%20dans%20un%20mode%20compact%20une%C2%A0s%C3%A9rie%C2%A0d%27articles.%20Les%20articles%20sont%C2%A0affich%C3%A9s%C2%A0en%20liste%20avec%20pagina" title="del.icio.us"><img src="http://www.berejeb.com/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  target="_blank" href="http://www.facebook.com/share.php?u=http%3A%2F%2Fwww.berejeb.com%2F2010%2F10%2Ftutoriel-developper-un-previsualiseur-de-nouvelles-avec-jquery%2F&amp;t=Tutoriel%20%3A%20developper%20un%20previsualiseur%20de%20nouvelles%20avec%20jQuery" title="Facebook"><img src="http://www.berejeb.com/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  target="_blank" href="http://www.google.com/bookmarks/mark?op=edit&amp;bkmk=http%3A%2F%2Fwww.berejeb.com%2F2010%2F10%2Ftutoriel-developper-un-previsualiseur-de-nouvelles-avec-jquery%2F&amp;title=Tutoriel%20%3A%20developper%20un%20previsualiseur%20de%20nouvelles%20avec%20jQuery&amp;annotation=%0D%0A%0D%0ATympanus.net%20pr%C3%A9sente%C2%A0un%20tutoriel%20assez%20cool%20qui%20montre%20comment%C2%A0d%C3%A9velopper%C2%A0en%20jQuery%20un%20%C2%A0Previsualiseur%20de%20nouvelles%20qui%20vous%20permet%20d%27afficher%20dans%20un%20mode%20compact%20une%C2%A0s%C3%A9rie%C2%A0d%27articles.%20Les%20articles%20sont%C2%A0affich%C3%A9s%C2%A0en%20liste%20avec%20pagina" title="Google Bookmarks"><img src="http://www.berejeb.com/wp-content/plugins/sociable/images/googlebookmark.png" title="Google Bookmarks" alt="Google Bookmarks" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  target="_blank" href="https://favorites.live.com/quickadd.aspx?marklet=1&amp;url=http%3A%2F%2Fwww.berejeb.com%2F2010%2F10%2Ftutoriel-developper-un-previsualiseur-de-nouvelles-avec-jquery%2F&amp;title=Tutoriel%20%3A%20developper%20un%20previsualiseur%20de%20nouvelles%20avec%20jQuery" title="Live"><img src="http://www.berejeb.com/wp-content/plugins/sociable/images/live.png" title="Live" alt="Live" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  target="_blank" href="http://reporter.nl.msn.com/?fn=contribute&amp;Title=Tutoriel%20%3A%20developper%20un%20previsualiseur%20de%20nouvelles%20avec%20jQuery&amp;URL=http%3A%2F%2Fwww.berejeb.com%2F2010%2F10%2Ftutoriel-developper-un-previsualiseur-de-nouvelles-avec-jquery%2F&amp;cat_id=6&amp;tag_id=31&amp;Remark=%0D%0A%0D%0ATympanus.net%20pr%C3%A9sente%C2%A0un%20tutoriel%20assez%20cool%20qui%20montre%20comment%C2%A0d%C3%A9velopper%C2%A0en%20jQuery%20un%20%C2%A0Previsualiseur%20de%20nouvelles%20qui%20vous%20permet%20d%27afficher%20dans%20un%20mode%20compact%20une%C2%A0s%C3%A9rie%C2%A0d%27articles.%20Les%20articles%20sont%C2%A0affich%C3%A9s%C2%A0en%20liste%20avec%20pagina" title="MSN Reporter"><img src="http://www.berejeb.com/wp-content/plugins/sociable/images/msnreporter.png" title="MSN Reporter" alt="MSN Reporter" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  target="_blank" href="http://www.netvibes.com/share?title=Tutoriel%20%3A%20developper%20un%20previsualiseur%20de%20nouvelles%20avec%20jQuery&amp;url=http%3A%2F%2Fwww.berejeb.com%2F2010%2F10%2Ftutoriel-developper-un-previsualiseur-de-nouvelles-avec-jquery%2F" title="Netvibes"><img src="http://www.berejeb.com/wp-content/plugins/sociable/images/netvibes.png" title="Netvibes" alt="Netvibes" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  target="_blank" href="http://technorati.com/faves?add=http%3A%2F%2Fwww.berejeb.com%2F2010%2F10%2Ftutoriel-developper-un-previsualiseur-de-nouvelles-avec-jquery%2F" title="Technorati"><img src="http://www.berejeb.com/wp-content/plugins/sociable/images/technorati.png" title="Technorati" alt="Technorati" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  target="_blank" href="http://twitter.com/home?status=Tutoriel%20%3A%20developper%20un%20previsualiseur%20de%20nouvelles%20avec%20jQuery%20-%20http%3A%2F%2Fwww.berejeb.com%2F2010%2F10%2Ftutoriel-developper-un-previsualiseur-de-nouvelles-avec-jquery%2F" title="Twitter"><img src="http://www.berejeb.com/wp-content/plugins/sociable/images/twitter.png" title="Twitter" alt="Twitter" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  target="_blank" href="http://bookmarks.yahoo.com/toolbar/savebm?u=http%3A%2F%2Fwww.berejeb.com%2F2010%2F10%2Ftutoriel-developper-un-previsualiseur-de-nouvelles-avec-jquery%2F&amp;t=Tutoriel%20%3A%20developper%20un%20previsualiseur%20de%20nouvelles%20avec%20jQuery&opener=bm&amp;ei=UTF-8&amp;d=%0D%0A%0D%0ATympanus.net%20pr%C3%A9sente%C2%A0un%20tutoriel%20assez%20cool%20qui%20montre%20comment%C2%A0d%C3%A9velopper%C2%A0en%20jQuery%20un%20%C2%A0Previsualiseur%20de%20nouvelles%20qui%20vous%20permet%20d%27afficher%20dans%20un%20mode%20compact%20une%C2%A0s%C3%A9rie%C2%A0d%27articles.%20Les%20articles%20sont%C2%A0affich%C3%A9s%C2%A0en%20liste%20avec%20pagina" title="Yahoo! Bookmarks"><img src="http://www.berejeb.com/wp-content/plugins/sociable/images/yahoomyweb.png" title="Yahoo! Bookmarks" alt="Yahoo! Bookmarks" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  target="_blank" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fwww.berejeb.com%2F2010%2F10%2Ftutoriel-developper-un-previsualiseur-de-nouvelles-avec-jquery%2F&amp;title=Tutoriel%20%3A%20developper%20un%20previsualiseur%20de%20nouvelles%20avec%20jQuery&amp;source=Anis+Berejeb+Actualites+et+nouveautes+du+developpement+web%2C+PHP%2C+MySQL%2C+HTTP%2C+JavaScript%2C+Performance&amp;summary=%0D%0A%0D%0ATympanus.net%20pr%C3%A9sente%C2%A0un%20tutoriel%20assez%20cool%20qui%20montre%20comment%C2%A0d%C3%A9velopper%C2%A0en%20jQuery%20un%20%C2%A0Previsualiseur%20de%20nouvelles%20qui%20vous%20permet%20d%27afficher%20dans%20un%20mode%20compact%20une%C2%A0s%C3%A9rie%C2%A0d%27articles.%20Les%20articles%20sont%C2%A0affich%C3%A9s%C2%A0en%20liste%20avec%20pagina" title="LinkedIn"><img src="http://www.berejeb.com/wp-content/plugins/sociable/images/linkedin.png" title="LinkedIn" alt="LinkedIn" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  target="_blank" href="http://www.dzone.com/links/add.html?url=http%3A%2F%2Fwww.berejeb.com%2F2010%2F10%2Ftutoriel-developper-un-previsualiseur-de-nouvelles-avec-jquery%2F&amp;title=Tutoriel%20%3A%20developper%20un%20previsualiseur%20de%20nouvelles%20avec%20jQuery" title="DZone"><img src="http://www.berejeb.com/wp-content/plugins/sociable/images/dzone.png" title="DZone" alt="DZone" class="sociable-hovers" /></a></li>
	<li class="sociablelast"><a rel="nofollow"  target="_blank" href="http://www.viadeo.com/shareit/share/?url=http%3A%2F%2Fwww.berejeb.com%2F2010%2F10%2Ftutoriel-developper-un-previsualiseur-de-nouvelles-avec-jquery%2F&title=Tutoriel%20%3A%20developper%20un%20previsualiseur%20de%20nouvelles%20avec%20jQuery&urllanguage=fr" title="viadeo FR"><img src="http://www.berejeb.com/wp-content/plugins/sociable/images/viadeo.png" title="viadeo FR" alt="viadeo FR" class="sociable-hovers" /></a></li>
</ul>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.berejeb.com/2010/10/tutoriel-developper-un-previsualiseur-de-nouvelles-avec-jquery/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Apprendre a utiliser Git</title>
		<link>http://www.berejeb.com/2009/10/apprendre-a-utiliser-git/</link>
		<comments>http://www.berejeb.com/2009/10/apprendre-a-utiliser-git/#comments</comments>
		<pubDate>Sun, 01 Nov 2009 00:10:16 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[WEB]]></category>
		<category><![CDATA[featured]]></category>
		<category><![CDATA[git]]></category>
		<category><![CDATA[tutoriel]]></category>

		<guid isPermaLink="false">http://www.berejeb.com/?p=1117</guid>
		<description><![CDATA[Qu&#8217;est ce que Git Il est absurde de développer sans utiliser un système de contrôle de révision; ce genre de système vous donne la liberté de faire ce que vous voulez avec votre code sans souci puisqu&#8217;il vous permet toujours de restaurer une version précédente. Git s&#8217;inscrit dans ce cadre. C&#8217;est gestionnaire de versionning de [...]]]></description>
			<content:encoded><![CDATA[<h2><a rel="attachment wp-att-1130" href="http://www.berejeb.com/2009/10/apprendre-a-utiliser-git/git/"><img class="alignnone size-full wp-image-1130" title="git" src="http://www.berejeb.com/wp-content/uploads/2009/10/git.gif" alt="git" width="430" height="103" /></a></h2>
<h2>Qu&#8217;est ce que Git</h2>
<p>Il est absurde de développer sans utiliser un système de contrôle de révision; ce genre de système vous donne la liberté de faire ce que vous voulez avec votre code sans souci puisqu&#8217;il vous permet toujours de restaurer une version précédente.<br />
Git s&#8217;inscrit dans ce cadre. C&#8217;est gestionnaire de versionning de code  et un outil de developpement collaboratif Open source, il a été crée par Linus Torvalds lorsqu&#8217;il développait le noyau de Linux.<br />
L&#8217;un des points importants que rajoute Git par rapport a d&#8217;autres système de gestion de versions ( comme SVN, CVS etc.) est qu&#8217;il vous permet d&#8217;avoir un environnement de &laquo;&nbsp;staging&nbsp;&raquo;, c&#8217;est un . Je ferais une comparaison avec SVN pour éclaircir un peu le concept : Sous SVN, une fois vous effectuez vos changements et que vous voulez les soumettre, vous commitez. Ce code sera poussé dans le repository.<br />
Avec Git, vous pouvez commiter votre code en local, retourner a des versions antérieures etc, toujours en local. Par la suite, vous pourrez commiter votre code sur le serveur. Vous pouvez voir cela comme un environnement de versionning local, mais qui est relie aussi a un environnement Maître.<br />
Le lien : <a href="http://whygitisbetterthanx.com/#the-staging-area" target="_blanc">http://whygitisbetterthanx.com</a> Explique via des graphiques Les différences de Git avec les autres systèmes de versionning.</p>
<h2>Installation</h2>
<p>Pour installer Git sous Ubuntu, tapez simplement :</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p1117code39'); return false;">View Code</a> SHELL</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p111739"><td class="line_numbers"><pre>1
</pre></td><td class="code" id="p1117code39"><pre class="shell" style="font-family:monospace;">sudo apt-get install git-core</pre></td></tr></table></div>

<h3>Configuration</h3>
<p>Avant de commencer d&#8217;utiliser Git, vous pouvez personnaliser votre identité en spécifiant votre nom et votre mail comme suit :</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p1117code40'); return false;">View Code</a> SHELL</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p111740"><td class="line_numbers"><pre>1
2
</pre></td><td class="code" id="p1117code40"><pre class="shell" style="font-family:monospace;">git config --global user.name &quot;Votr nom&quot;
git config --global user.email &quot;votre@email.com&quot;</pre></td></tr></table></div>

<p>Vous pouvez ajouter également des couleurs pour une meilleure lecture sur le terminal :</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p1117code41'); return false;">View Code</a> SHELL</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p111741"><td class="line_numbers"><pre>1
2
3
</pre></td><td class="code" id="p1117code41"><pre class="shell" style="font-family:monospace;">git config --global color.diff auto
git config --global color.status auto
git config --global color.branch auto</pre></td></tr></table></div>

<h2>git init</h2>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p1117code42'); return false;">View Code</a> SHELL</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p111742"><td class="line_numbers"><pre>1
2
3
4
</pre></td><td class="code" id="p1117code42"><pre class="shell" style="font-family:monospace;">$ mkdir gitTest
$ cd gitTest
$ git init
Initialized empty Git repository in /home/user/gitTest/.git/</pre></td></tr></table></div>

<p>La commande <strong>git init</strong> va initialiser votre répertoire. <strong>git init</strong> crée une branche Maître (branche principale). Vous pouvez par la suite créer différentes branches si le besoin se présente.</p>
<p>Pour ajouter des fichiers vous utiliserez la commande <strong>git add</strong></p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p1117code43'); return false;">View Code</a> SHELL</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p111743"><td class="line_numbers"><pre>1
2
3
</pre></td><td class="code" id="p1117code43"><pre class="shell" style="font-family:monospace;">git add . // ajouter le repertoire courant
git add *.php // ajouter tous les fichiers php dans le repertoire courant
git add index.php // ajouter le fichier index.php</pre></td></tr></table></div>

<p>tapez par la commande <strong>git commit</strong>.</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p1117code44'); return false;">View Code</a> SHELL</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p111744"><td class="line_numbers"><pre>1
</pre></td><td class="code" id="p1117code44"><pre class="shell" style="font-family:monospace;">~/gitTest$ git commit -m &quot;Initial commit&quot;</pre></td></tr></table></div>

<p>Le paramètre -m sert a définir votre message de commit. en omettant ce paramètre, un éditeur est ouvert afin de vous permettre de saisir votre message. A la sauvegarde de vos changements, le/les fichiers seront commites et vous aurez un message similaire :</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p1117code45'); return false;">View Code</a> SHELL</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p111745"><td class="line_numbers"><pre>1
2
3
</pre></td><td class="code" id="p1117code45"><pre class="shell" style="font-family:monospace;">Created initial commit b2c73d2: First commit
 1 files changed, 2 insertions(+), 0 deletions(-)
 create mode 100644 index.php</pre></td></tr></table></div>

<p>Par défaut, l&#8217;éditeur utilise est nano. Pour changer votre éditeur a vi par exemple,  vous pouvez taper :</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p1117code46'); return false;">View Code</a> SHELL</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p111746"><td class="line_numbers"><pre>1
</pre></td><td class="code" id="p1117code46"><pre class="shell" style="font-family:monospace;">export SVN_EDITOR=vi</pre></td></tr></table></div>

<p>Le commit qu&#8217;on vient de faire commite nos fichiers en local. Pour voir l&#8217;état de notre projet, tapez <strong>git status</strong></p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p1117code47'); return false;">View Code</a> SHELL</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p111747"><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
</pre></td><td class="code" id="p1117code47"><pre class="shell" style="font-family:monospace;">~/gitTest$ git status
# On branch master
# Changed but not updated:
#   (use &quot;git add ...&quot; to update what will be committed)
#
#	modified:   index.php
#
no changes added to commit (use &quot;git add&quot; and/or &quot;git commit -a&quot;)</pre></td></tr></table></div>

<p>Comme vous le lisez sur le code ci-dessous, git vous suggère d&#8217;utiliser l&#8217;option -a de git commit pour pousser les changements dans la repository.</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p1117code48'); return false;">View Code</a> SHELL</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p111748"><td class="line_numbers"><pre>1
2
3
4
5
6
</pre></td><td class="code" id="p1117code48"><pre class="shell" style="font-family:monospace;">~/gitTest$ git commit -a
Created commit bc061fc: First revision
 1 files changed, 1 insertions(+), 1 deletions(-)
~/gitTest$ git status
# On branch master
nothing to commit (working directory clean)</pre></td></tr></table></div>

<h2>git status</h2>
<p>Comme on a vu, la commande <strong>git status</strong> permet d&#8217;afficher l&#8217;etat des fichiers dans votre repertoire de travail.<br />
Nous allons créer un autre fichier index2.php, écrire une ligne ou deux et le sauvegarder. Nous allons aussi faire un changement dans le fichier index.php déjà ajoute et commite. Par la suite on tape un <strong>git status</strong>.</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p1117code49'); return false;">View Code</a> SHELL</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p111749"><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
</pre></td><td class="code" id="p1117code49"><pre class="shell" style="font-family:monospace;">~/gitTest$ git status
# On branch master
# Changed but not updated:
#   (use &quot;git add ...&quot; to update what will be committed)
#
#	modified:   index.php
#
# Untracked files:
#   (use &quot;git add ...&quot; to include in what will be committed)
#
#	index2.php
no changes added to commit (use &quot;git add&quot; and/or &quot;git commit -a&quot;)</pre></td></tr></table></div>

<p>La section Untracked files affiche les fichiers qui ne sont pas encore ajoutes a git. Si un fichier a été modifié, git le détecte aussi et vous le signale.<br />
la commande <strong>git add</strong> permettra a la fois de mettre a jour le fichier auparavant versionne, et d&#8217;ajouter le nouveau fichier.<br />
pour commiter directement les changements tapez</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p1117code50'); return false;">View Code</a> SHELL</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p111750"><td class="line_numbers"><pre>1
2
3
4
</pre></td><td class="code" id="p1117code50"><pre class="shell" style="font-family:monospace;">~/gitTest$ git commit -am 'version 3'
~/gitTest$ git status
# On branch master
nothing to commit (working directory clean)</pre></td></tr></table></div>

<h2>git branch</h2>
<p>Tout ce qu&#8217;on vient de faire jusque la était commité a la branche principale, ou encore la branche &laquo;&nbsp;master&nbsp;&raquo;. git nous le disait dans les commentaires de commit (# On branch master). Pour créer une nouvelle branche, on utilisera la commande <strong>git branch</strong>.</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p1117code51'); return false;">View Code</a> SHELL</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p111751"><td class="line_numbers"><pre>1
</pre></td><td class="code" id="p1117code51"><pre class="shell" style="font-family:monospace;">~/gitTest$ git branch</pre></td></tr></table></div>

<p>la commande <strong>git branch</strong> sans options liste les branches. Il nous faudra spécifier le nom de la branche si on veut en créer une:</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p1117code52'); return false;">View Code</a> SHELL</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p111752"><td class="line_numbers"><pre>1
</pre></td><td class="code" id="p1117code52"><pre class="shell" style="font-family:monospace;">~/gitTest$ git branch nouvelleBranche</pre></td></tr></table></div>

<p>Pour changer l&#8217;environnement de travail a la nouvelle branche créée, utiliser la commande <strong>git checkout</strong></p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p1117code53'); return false;">View Code</a> SHELL</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p111753"><td class="line_numbers"><pre>1
2
</pre></td><td class="code" id="p1117code53"><pre class="shell" style="font-family:monospace;">~/gitTest$ git checkout nouvelleBranche
Switched to branch &quot;nouvelleBranche&quot;</pre></td></tr></table></div>

<p>On aurait pu créer la branche et switcher directement dedans en tapant :</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p1117code54'); return false;">View Code</a> SHELL</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p111754"><td class="line_numbers"><pre>1
</pre></td><td class="code" id="p1117code54"><pre class="shell" style="font-family:monospace;">~/gitTest$ git checkout -b nouvelleBranche</pre></td></tr></table></div>

<p>On peut ajouter un fichier &laquo;&nbsp;onNouvelleBranche.php&nbsp;&raquo; dans cette branche</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p1117code55'); return false;">View Code</a> SHELL</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p111755"><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
</pre></td><td class="code" id="p1117code55"><pre class="shell" style="font-family:monospace;">~/gitTest$ vi onNouvelleBranche.php // editer, ajouter quelques lignes et sauvegarder
~/gitTest$ git add onNouvelleBranche.php
~/gitTest$ git status
# On branch nouvelleBranche
# Changes to be committed:
#   (use &quot;git reset HEAD ...&quot; to unstage)
#
#	new file:   onNouvelleBranche.php
#
~/gitTest$ git commit onNouvelleBranche.php
Created commit 9136ef3: Added on nouvellebranche.php
 1 files changed, 2 insertions(+), 0 deletions(-)
~/gitTest$ git status
# On branch nouvelleBranche
nothing to commit (working directory clean)</pre></td></tr></table></div>

<p>On peut voir qu&#8217;on a un le fichier onNouvelleBranche.php qui est seulement dans la branche nouvelleBranche :</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p1117code56'); return false;">View Code</a> SHELL</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p111756"><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
</pre></td><td class="code" id="p1117code56"><pre class="shell" style="font-family:monospace;">~/gitTest$ git checkout master
Switched to branch &quot;master&quot;
~/gitTest$ ls
index2.php  index3.php  index.php
~/gitTest$ git checkout nouvelleBranche
Switched to branch &quot;nouvelleBranche&quot;
~/gitTest$ ls
index2.php  index3.php  index.php  onNouvelleBranche.php</pre></td></tr></table></div>

<h2>git merge</h2>
<p>Maintenant que nous avons deux branches, la branche master et la branche nouvelleBranche. On peut imaginer le scénario la ou notre code est devenu suffisamment stable sur la branche nouvelleBranche, et qu&#8217;on voudrait le merger avec la branche principale. Pour ce faire, dans la branche master, on peut utiliser <strong>git merge</strong> :</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p1117code57'); return false;">View Code</a> SHELL</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p111757"><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
</pre></td><td class="code" id="p1117code57"><pre class="shell" style="font-family:monospace;">~/gitTest$ git checkout master
Switched to branch &quot;master&quot;
~/gitTest$ git merge nouvelleBranche
Updating d7f806b..9136ef3
Fast forward
 onNouvelleBranche.php |    2 ++
 1 files changed, 2 insertions(+), 0 deletions(-)
 create mode 100644 onNouvelleBranche.php
~/gitTest$ ls
index2.php  index3.php  index.php  onNouvelleBranche.php</pre></td></tr></table></div>

<p>Comme vous le remarquez, le fichier onNouvelleBranche.php a ete rajoute dans la branche principale.</p>
<h2>git log</h2>
<p>Pour afficher les actions effectuées sur le repository, vous pouvez utiliser la commande <strong>git log</strong> :</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p1117code58'); return false;">View Code</a> SHELL</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p111758"><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
</pre></td><td class="code" id="p1117code58"><pre class="shell" style="font-family:monospace;">~/gitTest$ git log
commit 9136ef3e840148e6e867589301dd0a6fc02afadb
Author: Anis
Date:   Sat Oct 31 18:32:41 2009 -0400
&nbsp;
    Added on nouvellebranche.php
&nbsp;
commit d7f806b98f7528e5247c59eb730405b94ea13c73
Author: Anis
Date:   Sat Oct 31 13:27:41 2009 -0400
&nbsp;
    Updated index.php
&nbsp;
commit ae8a77c7fe24e64bfc9a04efc45ae2333ad9e2b1
Author: Anis
Date:   Fri Oct 30 23:46:33 2009 -0400
&nbsp;
    version 3
&nbsp;
commit 76eb6058709baa2703bb900e8a321bd8ce5c79e8
Author: Anis
Date:   Fri Oct 30 23:44:08 2009 -0400
&nbsp;
    added index2 and updated index
&nbsp;
commit bc061fce5d91dc9e7ea44337b9c99c380d582d72
Author: Anis
Date:   Fri Oct 30 23:06:25 2009 -0400
&nbsp;
    First revision
&nbsp;
commit b2c73d23cf1ce6c12f3a6ebbe3d37ecd0c7bbf66
Author: Anis
Date:   Fri Oct 30 22:57:16 2009 -0400
&nbsp;
    First commit</pre></td></tr></table></div>

<p>Pour un meilleur affichage, on peut utiliser l&#8217;option &#8211;graph, ou encore mieux, on peut utiliser gitk. <strong>gitk</strong> est un utilitaire graphique qui permet d&#8217;afficher l&#8217;ensemble des opérations effectuées sur votre repository, les diffs, les logs etc. Vous pouvez installer gitk sous ubuntu avec un simple &laquo;&nbsp;sudo apt-get install gitk&nbsp;&raquo;</p>
<p><a rel="attachment wp-att-1125" href="http://www.berejeb.com/2009/10/apprendre-a-utiliser-git/github/"><img class="alignnone size-medium wp-image-1125" title="github" src="http://www.berejeb.com/wp-content/uploads/2009/10/github-300x172.png" alt="github" width="300" height="172" /></a></p>
<h2>GitHub</h2>
<p>GitHub est un site hébergeant des repositories Git. Vous pouvez vous y inscrire et creer votre propre compte et vous aurez 300 Mo de stockage et un nombre illimité de repositories et de collaborateurs.<br />
Vous aurez besoin de votre cle publique pour utiliser le service de GitHub.<br />
Pour generer votre cle publique vous tapez :</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p1117code59'); return false;">View Code</a> SHELL</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p111759"><td class="line_numbers"><pre>1
</pre></td><td class="code" id="p1117code59"><pre class="shell" style="font-family:monospace;">~/gitTest$ ssh-keygen -t rsa -C &quot;votre.mail@serveur.com&quot;</pre></td></tr></table></div>

<p>Suivez les étapes de création, le programme vous indiquera l&#8217;emplacement du fichier contenant votre clé publique. C&#8217;est généralement sous votre répertoire home : ~/.ssh/id_rsa.pub. Copiez le contenu de ce fichier dans l&#8217;espace réservé lors de l&#8217;inscription. Ensuite, tapez :</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p1117code60'); return false;">View Code</a> SHELL</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p111760"><td class="line_numbers"><pre>1
</pre></td><td class="code" id="p1117code60"><pre class="shell" style="font-family:monospace;">~/gitTest$ ssh git@github.com</pre></td></tr></table></div>

<p>Vous serez demandes a taper votre pass-phrase pour valider l&#8217;authentification.</p>
<h2>git clone</h2>
<p>Maintenant que nous avons un compte chez github. essayons de &laquo;&nbsp;checkouter&nbsp;&raquo; un projet. Je choisis le projet <a href="http://bashar.alfallouji.com/php-autoload-manager/" target="_blank">PHP AUTOLOAD MANAGER</a> de <a href="http://bashar.alfallouji.com" target="_blank">Bashar</a> :</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p1117code61'); return false;">View Code</a> SHELL</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p111761"><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
</pre></td><td class="code" id="p1117code61"><pre class="shell" style="font-family:monospace;">~$ git clone git://github.com/alfallouji/PHP-Autoload-Manager.git
Initialized empty Git repository in /home/bachkoutou/PHP-Autoload-Manager/.git/
remote: Counting objects: 37, done.
remote: Compressing objects: 100% (37/37), done.
remote: Total 37 (delta 11), reused 0 (delta 0)
Receiving objects: 100% (37/37), 7.16 KiB, done.
Resolving deltas: 100% (11/11), done.
~$ ls
gitTest PHP-Autoload-Manager</pre></td></tr></table></div>

<h2>git push et git pull</h2>
<p>La commande <strong>git push</strong> permet de pousser vos fichiers dans une repository distante. Je me suis fait créer une repo test sous GitHub. Je vais y pousser mes fichiers crées au cours de ce tutoriel comme suit :</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p1117code62'); return false;">View Code</a> SHELL</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p111762"><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
</pre></td><td class="code" id="p1117code62"><pre class="shell" style="font-family:monospace;">~/gitTest$ git remote add origin git@github.com:bachkoutou/test.git
~/gitTest$ git push origin master
Counting objects: 19, done.
Compressing objects: 100% (13/13), done.
Writing objects: 100% (19/19), 1.62 KiB, done.
Total 19 (delta 2), reused 0 (delta 0)
To git@github.com:bachkoutou/test.git
 * [new branch]      master -&amp;gt; master</pre></td></tr></table></div>

<p>La première commande permet de donner le nom &laquo;&nbsp;origin&nbsp;&raquo; a notre repository distant. La deuxième va pousser les fichiers qui sont dans la branche master dans ce repository.</p>
<p>Si vous êtes un autre développeur sur le projet test, vous pouvez utiliser la commande <strong>git pull</strong> qui effectue a la fois un <strong>git fetch</strong> pour récupérer les changements et un <strong>git merge</strong> pour les merger avec votre version.</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p1117code63'); return false;">View Code</a> SHELL</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p111763"><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
</pre></td><td class="code" id="p1117code63"><pre class="shell" style="font-family:monospace;">~$ mkdir gitTestCollaborator
~$ cd gitTestCollaborator/
~/gitTestCollaborator$ vi indexCollaborator.php
~/gitTestCollaborator$ git init
Initialized empty Git repository in /home/bachkoutou/gitTestCollaborator/.git/
~/gitTestCollaborator$ git pull git://github.com/bachkoutou/test.git
remote: Counting objects: 19, done.
remote: Compressing objects: 100% (13/13), done.
remote: Total 19 (delta 2), reused 0 (delta 0)
Unpacking objects: 100% (19/19), done.
From git://github.com/bachkoutou/test
 * branch            HEAD       -&amp;gt; FETCH_HEAD
~/gitTestCollaborator$ git status
# On branch master
# Untracked files:
#   (use &quot;git add ...&quot; to include in what will be committed)
#
#	indexCollaborator.php
nothing added to commit but untracked files present (use &quot;git add&quot; to track)
~/gitTestCollaborator$ git add indexCollaborator.php
~/gitTestCollaborator$ git commit -m &quot;Added file from collaborator&quot;
Created commit f71f97b: Added file from collaborator
 1 files changed, 2 insertions(+), 0 deletions(-)
 create mode 100644 indexCollaborator.php
~/gitTestCollaborator$ git status
# On branch master
nothing to commit (working directory clean)
~/gitTestCollaborator$ git remote add origin git@github.com:bachkoutou/test.git
~/gitTestCollaborator$ git push origin master
Counting objects: 4, done.
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 338 bytes, done.
Total 3 (delta 1), reused 0 (delta 0)
To git@github.com:bachkoutou/test.git
   9136ef3..f71f97b  master -&amp;gt; master
~/gitTestCollaborator$ git status
# On branch master
nothing to commit (working directory clean)</pre></td></tr></table></div>

<p>Pour illustrer ce scenario, je viens de</p>
<ul>
<li>créer un répertoire gitTestCollaborator et l&#8217;acceder</li>
<li>ajouter un fichier indexCollaborator.php dans lequel j&#8217;ai ajouté une ligne</li>
<li>initialiser le projet avec <strong>git init</strong></li>
<li>checkouter le projet GitHub/bachkoutou/test avec <strong>git pull</strong> git://github.com/bachkoutou/test.git</li>
<li>executer<strong> git status</strong> pour vous montrer que le fichier indexCollaborator.php n&#8217;est pas encore ajouté au projet</li>
<li>ajouter le fichier indexCollaborator.php avec <strong>git add</strong></li>
<li>commiter mes changements avec <strong>git commit</strong></li>
<li>pousser mes changements dans GitHub avec <strong>git remote</strong> et <strong>git push</strong></li>
<li>executer un autre <strong>git status</strong> pour s&#8217;assurer que tout est bien passe</li>
</ul>
<p>Je vais revenir maintenant au répertoire gitTest et effectuer un git pull pour récupérer le fichier indexCollaborator.</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p1117code64'); return false;">View Code</a> SHELL</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p111764"><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
</pre></td><td class="code" id="p1117code64"><pre class="shell" style="font-family:monospace;">~/gitTestCollaborator$ cd ../gitTest
~/gitTest$ ls
index2.php  index3.php  index.php  onNouvelleBranche.php
~/gitTest$ git pull git://github.com/bachkoutou/test.git
remote: Counting objects: 4, done.
remote: Compressing objects: 100% (2/2), done.
remote: Total 3 (delta 1), reused 0 (delta 0)
Unpacking objects: 100% (3/3), done.
From git://github.com/bachkoutou/test
 * branch            HEAD       -&amp;gt; FETCH_HEAD
Updating 9136ef3..f71f97b
Fast forward
 indexCollaborator.php |    2 ++
 1 files changed, 2 insertions(+), 0 deletions(-)
 create mode 100644 indexCollaborator.php
~/gitTest$ ls
index2.php  index3.php  indexCollaborator.php  index.php  onNouvelleBranche.php</pre></td></tr></table></div>

<p>Le screenshot suivant affiche le contenu de mes fichiers sur GitHub</p>
<p><a rel="attachment wp-att-1124" href="http://www.berejeb.com/2009/10/apprendre-a-utiliser-git/testproject/"><img class="alignnone size-medium wp-image-1124" title="testProject" src="http://www.berejeb.com/wp-content/uploads/2009/10/testProject-300x172.png" alt="testProject" width="300" height="172" /></a></p>
<h2>Conclusion</h2>
<p>Au cours de ce tuto, nous venons de decouvrir comment utiliser Git pour un projet collaboratif et pour versionner vos fichier. Si vous avez des remarques ou des questions n&#8217;hesitez surtout pas!</p>

<div class="sociable">
<div class="sociable_tagline">
Partager :
</div>
<ul>
	<li class="sociablefirst"><a rel="nofollow"  target="_blank" href="http://www.printfriendly.com/print?url=http%3A%2F%2Fwww.berejeb.com%2F2009%2F10%2Fapprendre-a-utiliser-git%2F&amp;partner=sociable" title="Print"><img src="http://www.berejeb.com/wp-content/plugins/sociable/images/printfriendly.png" title="Print" alt="Print" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  target="_blank" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fwww.berejeb.com%2F2009%2F10%2Fapprendre-a-utiliser-git%2F&amp;title=Apprendre%20a%20utiliser%20Git&amp;bodytext=%0D%0AQu%27est%20ce%20que%20Git%0D%0AIl%20est%20absurde%20de%20d%C3%A9velopper%20sans%20utiliser%20un%20syst%C3%A8me%20de%20contr%C3%B4le%20de%20r%C3%A9vision%3B%20ce%20genre%20de%20syst%C3%A8me%20vous%20donne%20la%20libert%C3%A9%20de%20faire%20ce%20que%20vous%20voulez%20avec%20votre%20code%20sans%20souci%20puisqu%27il%20vous%20permet%20toujours%20de%20restaurer%20une" title="Digg"><img src="http://www.berejeb.com/wp-content/plugins/sociable/images/digg.png" title="Digg" alt="Digg" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  target="_blank" href="http://delicious.com/post?url=http%3A%2F%2Fwww.berejeb.com%2F2009%2F10%2Fapprendre-a-utiliser-git%2F&amp;title=Apprendre%20a%20utiliser%20Git&amp;notes=%0D%0AQu%27est%20ce%20que%20Git%0D%0AIl%20est%20absurde%20de%20d%C3%A9velopper%20sans%20utiliser%20un%20syst%C3%A8me%20de%20contr%C3%B4le%20de%20r%C3%A9vision%3B%20ce%20genre%20de%20syst%C3%A8me%20vous%20donne%20la%20libert%C3%A9%20de%20faire%20ce%20que%20vous%20voulez%20avec%20votre%20code%20sans%20souci%20puisqu%27il%20vous%20permet%20toujours%20de%20restaurer%20une" title="del.icio.us"><img src="http://www.berejeb.com/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  target="_blank" href="http://www.facebook.com/share.php?u=http%3A%2F%2Fwww.berejeb.com%2F2009%2F10%2Fapprendre-a-utiliser-git%2F&amp;t=Apprendre%20a%20utiliser%20Git" title="Facebook"><img src="http://www.berejeb.com/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  target="_blank" href="http://www.google.com/bookmarks/mark?op=edit&amp;bkmk=http%3A%2F%2Fwww.berejeb.com%2F2009%2F10%2Fapprendre-a-utiliser-git%2F&amp;title=Apprendre%20a%20utiliser%20Git&amp;annotation=%0D%0AQu%27est%20ce%20que%20Git%0D%0AIl%20est%20absurde%20de%20d%C3%A9velopper%20sans%20utiliser%20un%20syst%C3%A8me%20de%20contr%C3%B4le%20de%20r%C3%A9vision%3B%20ce%20genre%20de%20syst%C3%A8me%20vous%20donne%20la%20libert%C3%A9%20de%20faire%20ce%20que%20vous%20voulez%20avec%20votre%20code%20sans%20souci%20puisqu%27il%20vous%20permet%20toujours%20de%20restaurer%20une" title="Google Bookmarks"><img src="http://www.berejeb.com/wp-content/plugins/sociable/images/googlebookmark.png" title="Google Bookmarks" alt="Google Bookmarks" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  target="_blank" href="https://favorites.live.com/quickadd.aspx?marklet=1&amp;url=http%3A%2F%2Fwww.berejeb.com%2F2009%2F10%2Fapprendre-a-utiliser-git%2F&amp;title=Apprendre%20a%20utiliser%20Git" title="Live"><img src="http://www.berejeb.com/wp-content/plugins/sociable/images/live.png" title="Live" alt="Live" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  target="_blank" href="http://reporter.nl.msn.com/?fn=contribute&amp;Title=Apprendre%20a%20utiliser%20Git&amp;URL=http%3A%2F%2Fwww.berejeb.com%2F2009%2F10%2Fapprendre-a-utiliser-git%2F&amp;cat_id=6&amp;tag_id=31&amp;Remark=%0D%0AQu%27est%20ce%20que%20Git%0D%0AIl%20est%20absurde%20de%20d%C3%A9velopper%20sans%20utiliser%20un%20syst%C3%A8me%20de%20contr%C3%B4le%20de%20r%C3%A9vision%3B%20ce%20genre%20de%20syst%C3%A8me%20vous%20donne%20la%20libert%C3%A9%20de%20faire%20ce%20que%20vous%20voulez%20avec%20votre%20code%20sans%20souci%20puisqu%27il%20vous%20permet%20toujours%20de%20restaurer%20une" title="MSN Reporter"><img src="http://www.berejeb.com/wp-content/plugins/sociable/images/msnreporter.png" title="MSN Reporter" alt="MSN Reporter" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  target="_blank" href="http://www.netvibes.com/share?title=Apprendre%20a%20utiliser%20Git&amp;url=http%3A%2F%2Fwww.berejeb.com%2F2009%2F10%2Fapprendre-a-utiliser-git%2F" title="Netvibes"><img src="http://www.berejeb.com/wp-content/plugins/sociable/images/netvibes.png" title="Netvibes" alt="Netvibes" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  target="_blank" href="http://technorati.com/faves?add=http%3A%2F%2Fwww.berejeb.com%2F2009%2F10%2Fapprendre-a-utiliser-git%2F" title="Technorati"><img src="http://www.berejeb.com/wp-content/plugins/sociable/images/technorati.png" title="Technorati" alt="Technorati" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  target="_blank" href="http://twitter.com/home?status=Apprendre%20a%20utiliser%20Git%20-%20http%3A%2F%2Fwww.berejeb.com%2F2009%2F10%2Fapprendre-a-utiliser-git%2F" title="Twitter"><img src="http://www.berejeb.com/wp-content/plugins/sociable/images/twitter.png" title="Twitter" alt="Twitter" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  target="_blank" href="http://bookmarks.yahoo.com/toolbar/savebm?u=http%3A%2F%2Fwww.berejeb.com%2F2009%2F10%2Fapprendre-a-utiliser-git%2F&amp;t=Apprendre%20a%20utiliser%20Git&opener=bm&amp;ei=UTF-8&amp;d=%0D%0AQu%27est%20ce%20que%20Git%0D%0AIl%20est%20absurde%20de%20d%C3%A9velopper%20sans%20utiliser%20un%20syst%C3%A8me%20de%20contr%C3%B4le%20de%20r%C3%A9vision%3B%20ce%20genre%20de%20syst%C3%A8me%20vous%20donne%20la%20libert%C3%A9%20de%20faire%20ce%20que%20vous%20voulez%20avec%20votre%20code%20sans%20souci%20puisqu%27il%20vous%20permet%20toujours%20de%20restaurer%20une" title="Yahoo! Bookmarks"><img src="http://www.berejeb.com/wp-content/plugins/sociable/images/yahoomyweb.png" title="Yahoo! Bookmarks" alt="Yahoo! Bookmarks" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  target="_blank" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fwww.berejeb.com%2F2009%2F10%2Fapprendre-a-utiliser-git%2F&amp;title=Apprendre%20a%20utiliser%20Git&amp;source=Anis+Berejeb+Actualites+et+nouveautes+du+developpement+web%2C+PHP%2C+MySQL%2C+HTTP%2C+JavaScript%2C+Performance&amp;summary=%0D%0AQu%27est%20ce%20que%20Git%0D%0AIl%20est%20absurde%20de%20d%C3%A9velopper%20sans%20utiliser%20un%20syst%C3%A8me%20de%20contr%C3%B4le%20de%20r%C3%A9vision%3B%20ce%20genre%20de%20syst%C3%A8me%20vous%20donne%20la%20libert%C3%A9%20de%20faire%20ce%20que%20vous%20voulez%20avec%20votre%20code%20sans%20souci%20puisqu%27il%20vous%20permet%20toujours%20de%20restaurer%20une" title="LinkedIn"><img src="http://www.berejeb.com/wp-content/plugins/sociable/images/linkedin.png" title="LinkedIn" alt="LinkedIn" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  target="_blank" href="http://www.dzone.com/links/add.html?url=http%3A%2F%2Fwww.berejeb.com%2F2009%2F10%2Fapprendre-a-utiliser-git%2F&amp;title=Apprendre%20a%20utiliser%20Git" title="DZone"><img src="http://www.berejeb.com/wp-content/plugins/sociable/images/dzone.png" title="DZone" alt="DZone" class="sociable-hovers" /></a></li>
	<li class="sociablelast"><a rel="nofollow"  target="_blank" href="http://www.viadeo.com/shareit/share/?url=http%3A%2F%2Fwww.berejeb.com%2F2009%2F10%2Fapprendre-a-utiliser-git%2F&title=Apprendre%20a%20utiliser%20Git&urllanguage=fr" title="viadeo FR"><img src="http://www.berejeb.com/wp-content/plugins/sociable/images/viadeo.png" title="viadeo FR" alt="viadeo FR" class="sociable-hovers" /></a></li>
</ul>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.berejeb.com/2009/10/apprendre-a-utiliser-git/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

