scratch/output/Scratch/fr/blog/2009-11-12-Git-for-n00b/conf-et-install/index.html
2012-01-20 11:16:02 +01:00

304 lines
No EOL
15 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="fr" xml:lang="fr">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<link rel="shortcut icon" type="image/x-icon" href="/Scratch/img/favicon.ico" />
<link rel="stylesheet" type="text/css" href="/Scratch/assets/css/main.css" />
<link rel="stylesheet" type="text/css" href="/Scratch/css/twilight.css" />
<link rel="stylesheet" type="text/css" href="/Scratch/css/idc.css" />
<link rel="alternate" type="application/rss+xml" title="RSS" href="http://feeds.feedburner.com/yannespositocomfr"/>
<link rel="alternate" lang="fr" xml:lang="fr" title="Git pour les nuls" type="text/html" hreflang="fr" href="/Scratch/fr/blog/2009-11-12-Git-for-n00b/conf-et-install/" />
<link rel="alternate" lang="en" xml:lang="en" title="Git for n00b" type="text/html" hreflang="en" href="/Scratch/en/blog/2009-11-12-Git-for-n00b/conf-et-install/" />
<script type="text/javascript" src="/Scratch/js/jquery-1.3.1.min.js"></script>
<script type="text/javascript" src="/Scratch/js/jquery.cookie.js"></script>
<script type="text/javascript" src="/Scratch/js/index.js"></script>
<!--[if lt IE 9]>
<script src="http://ie7-js.googlecode.com/svn/version/2.1(beta4)/IE9.js"></script>
<![endif]-->
<title>Git pour les nuls</title>
</head>
<body lang="fr" class="article">
<script type="text/javascript">// <![CDATA[
document.write('<div id="blackpage"><img src="/Scratch/img/loading.gif" alt="Chargement en cours..."/></div>');
// ]]>
</script>
<div id="content">
<div id="choix">
<div class="return"><a href="#entete">&darr; Menu &darr;</a></div>
<div id="choixlang">
<a href="/Scratch/en/blog/2009-11-12-Git-for-n00b/conf-et-install/" onclick="setLanguage('en')">in English</a>
</div>
<div class="flush"></div>
</div>
<div id="titre">
<h1>
Git pour les nuls
</h1>
<h2>
Avant l'utilisation, la configuration
</h2>
</div>
<div class="flush"></div>
<div id="sousliens"><ul><li><a href="/Scratch/fr/blog/2009-11-12-Git-for-n00b/">la conlusion pour commencer <span class="nicer">&raquo;</span></a></li><li><a href="/Scratch/fr/blog/2009-11-12-Git-for-n00b/Git-pour-quoi-faire/">Git pour quoi faire ? <span class="nicer">&raquo;</span></a></li><li><span class="active" title="You're here.">Avant l'utilisation, la configuration <span class="nicer">&raquo;</span></span></li><li><a href="/Scratch/fr/blog/2009-11-12-Git-for-n00b/c-est-parti-pour-l-aventure/">Utiliser git avec quelques commandes simples <span class="nicer">&raquo;</span></a></li><li><a href="/Scratch/fr/blog/2009-11-12-Git-for-n00b/comprendre/">Comprendre <span class="nicer">&raquo;</span></a></li><li><a href="/Scratch/fr/blog/2009-11-12-Git-for-n00b/commandes-avancees/">Liste de commandes <span class="nicer">&raquo;</span></a></li></ul></div>
<div class="flush"></div>
<div id="afterheader">
<div class="corps">
<h1 class="first" id="avant-lutilisation-la-configuration">Avant lutilisation, la configuration</h1>
<h2 id="installation">installation</h2>
<p>Sous Linux Ubuntu ou Debian&nbsp;:</p>
<div><pre class="twilight">$ sudo apt-get install git
</pre></div>
<p>Sous Mac OS X&nbsp;:</p>
<ul>
<li>installez <a href="http://macports.org/install.php">MacPorts</a></li>
<li>installez <a href="http://git-scm.org" title="Git">Git</a></li>
</ul>
<div><pre class="twilight">
$ sudo port selfupdate
$ sudo port install git-core
</pre></div>
<h2 id="configuration-globale">Configuration globale</h2>
<p>Enregistrez le fichier suivant comme le fichier <code>~/.gitconfig</code>.</p>
<div><div class="code"><div class="file"><a href="/Scratch/fr/blog/2009-11-12-Git-for-n00b/conf-et-install/code/gitconfig"> &#x27A5; gitconfig </a></div><div class="withfile">
<pre class="twilight">
[color]
branch = auto
diff = auto
status = auto
[alias]
st = status
co = checkout
br = branch
lg = log --pretty=oneline --graph
logfull = log --pretty=fuller --graph --stat -p
unstage = reset HEAD
<span class="Comment"><span class="Comment">#</span> there should be an article on what this command do</span>
uncommit = <span class="Keyword">!</span>zsh -c <span class="String"><span class="String">'</span>&quot;if (($0)); then nb=$(( $0 - 1 )); else nb=0; fi; i=0; while ((i&lt;=nb)); do git revert -n --no-edit HEAD~$i; ((i++)); done; git commit -m \&quot;revert to $0 version(s) back\&quot;&quot;<span class="String">'</span></span>
undomerge = reset --hard ORIG_HEAD
conflict = <span class="Keyword">!</span>gitk --left-right HEAD...MERGE_HEAD
<span class="Comment"><span class="Comment">#</span> under Mac OS X, you should use gitx instead</span>
<span class="Comment"><span class="Comment">#</span> conflict = !gitx --left-right HEAD...MERGE_HEAD</span>
[branch]
autosetupmerge = true
</pre>
</div></div></div>
<p>Vous pouvez obtenir le même résultat en utilisant pour chaque entrée la commande <code>git config --global</code>.
Configurez ensuite votre nom et votre email. Par exemple si vous vous appelez John Doe et que votre email est <code>john.doe@email.com</code>. Lancez les commandes suivantes&nbsp;:</p>
<div><pre class="twilight">
$ git config --global user.name John Doe
$ git config --global user.email john.doe@email.com
</pre></div>
<p>Voilà, la configuration de base est terminée. Jai créé dans le fichier de configuration global des <em>alias</em> qui vont permettre de taper des commandes un peu plus courtes.</p>
<h2 id="rcupration-dun-projet-dj-versionn">Récupération dun projet déjà versionné</h2>
<p>Si un projet est déjà versionné avec <a href="http://git-scm.org" title="Git">Git</a> vous devez avoir une <code>URL</code> pointant vers les sources du projet. La commande a exécuter est alors très simple.</p>
<div><pre class="twilight">
$ cd <span class="Keyword">~</span>/Projets
$ git clone git://main.server/path/to/file
</pre></div>
<p>Sil ny a pas de serveur git sur le serveur distant, mais que vous avez un accès <code>ssh</code>, il suffit de remplacer le <code>git</code> de lurl par <code>ssh</code>. Pour ne pas avoir à entrer votre mot de passe à chaque fois le plus simple est de procéder comme suit&nbsp;:</p>
<div><pre class="twilight">
$ ssh-keygen -t rsa
</pre></div>
<p>Répondez aux question et nentrez <strong>surtout PAS</strong> de mot de passe. Ensuite copiez les clés sur le serveur distant. Ce nest pas la façon la plus sûre de procéder. Lidéal étant décrire quand même un mot de passe et dutiliser <code>ssh-agent</code>.</p>
<p>Ensuite le plus simple, si vous possédez <code>ssh-copy-id</code> (sous Ubuntu par exemple)&nbsp;:</p>
<div><pre class="twilight">
me@locahost$ ssh-copy-id -i <span class="Keyword">~</span>/.ssh/id_rsa.pub me@main.server
</pre></div>
<p>ou manuellement&nbsp;:</p>
<div><pre class="twilight">
me@locahost$ scp <span class="Keyword">~</span>/.ssh/id_rsa.pub me@main.server:
me@locahost$ ssh me@main.server
password:
me@main.server$ cat id_rsa.pub <span class="Keyword">&gt;&gt;</span> <span class="Keyword">~</span>/.ssh/authorized_keys
me@main.server$ rm id_rsa.pub
me@main.server$ logout
</pre></div>
<p>Maintenant vous navez plus besoin de taper votre mot de passe pour accéder à <code>main.server</code>. Et donc aussi pour les commandes <code>git</code>.</p>
<h2 id="crer-un-nouveau-projet">Créer un nouveau projet</h2>
<p>Supposons que vous avez déjà un projet avec des fichiers. Alors il est très facile de le versionner.</p>
<div><pre class="twilight">
$ cd /path/to/project
$ git init
$ git add .
$ git commit -m <span class="String"><span class="String">&quot;</span>Initial commit<span class="String">&quot;</span></span>
</pre></div>
<p>Une petite précision. Si vous ne souhaitez pas <em>versionner</em> tous les fichiers. Par exemple, les fichiers de compilations intermédiaires. Alors il faut les exclure. Pour cela, avant de lancer la commande <code>git add .</code>. Il faut créer un fichier <code>.gitignore</code> qui va contenir les <em>pattern</em> que git doit ignorer. Par exemple&nbsp;:</p>
<div><pre class="twilight">
*.o
*.bak
*.swp
*~
</pre></div>
<p>Maintenant si vous voulez créer un repository sur un serveur distant, il faut absolument quil soit en mode <code>bare</code>. Cest-à-dire que le repository ne contiendra que la partie contenant les informations utile à la gestion de git, mais pas les fichiers du projet. Sans rentrer dans les détails, il suffit de lancer&nbsp;:</p>
<div><pre class="twilight">
$ cd /path/to/local/project
$ git clone --bare . ssh://server/path/to/project
</pre></div>
<p>Les autres pourront alors récupérer les modifications via la commande vue précédemment&nbsp;:</p>
<div><pre class="twilight">
git clone ssh://server/path/to/project
</pre></div>
<h2 id="rsum-de-la-seconde-tape">Résumé de la seconde étape</h2>
<p>Vous avez maintenant un répertoire sur votre ordinateur local. Il est versionné. Vous pouvez vous en rendre compte parcequà la racine (et à la racine seulement), il y a un répertoire <code>.git</code>. Ce répertoire contient tous les fichiers nécessaires au bon fonctionnement de <a href="http://git-scm.org" title="Git">Git</a>.</p>
<p>Il ne reste plus quà savoir comment sen servir maintenant pour obtenir toutes les jolies promesses faites dans la première partie.</p>
</div>
<div id="choixrss">
<a id="rss" href="http://feeds.feedburner.com/yannespositocomfr">
s'abonner
</a>
</div>
<script type="text/javascript">
$(document).ready(function(){
$('#comment').hide();
$('#clickcomment').click(showComments);
});
function showComments() {
$('#comment').show();
$('#clickcomment').fadeOut();
}
document.write('<div id="clickcomment">Commentaires</div>');
</script>
<div class="flush"></div>
<div class="corps" id="comment">
<h2 class="first">commentaires</h2>
<noscript>
Vous devez activer javascript pour commenter.
</noscript>
<script type="text/javascript">
var idcomments_acct = 'a307f0044511ff1b5cfca573fc0a52e7';
var idcomments_post_id = '/Scratch/fr/blog/2009-11-12-Git-for-n00b/conf-et-install/';
var idcomments_post_url = 'http://yannesposito.com/Scratch/fr/blog/2009-11-12-Git-for-n00b/conf-et-install/';
</script>
<span id="IDCommentsPostTitle" style="display:none"></span>
<script type='text/javascript' src='/Scratch/js/genericCommentWrapperV2.js'></script>
</div>
<div id="entete" class="corps_spaced">
<div id="liens">
<ul><li><a href="/Scratch/fr/">Bienvenue</a></li>
<li><a href="/Scratch/fr/blog/">Blog</a></li>
<li><a href="/Scratch/fr/softwares/">Softwares</a></li>
<li><a href="/Scratch/fr/about/">À propos</a></li></ul>
</div>
<div class="flush"></div>
<hr/>
<div id="next_before_articles">
<div id="previous_articles">
articles précédents
<div class="previous_article">
<a href="/Scratch/fr/blog/2009-11-12-Git-for-n00b/Git-pour-quoi-faire/"><span class="nicer">«</span>&nbsp;Git pour les nuls</a>
</div>
</div>
<div id="next_articles">
articles suivants
<div class="next_article">
<a href="/Scratch/fr/blog/2009-11-12-Git-for-n00b/c-est-parti-pour-l-aventure/">Git pour les nuls&nbsp;<span class="nicer">»</span></a>
</div>
<div class="next_article">
<a href="/Scratch/fr/blog/2009-11-12-Git-for-n00b/comprendre/">Git pour les nuls&nbsp;<span class="nicer">»</span></a>
</div>
<div class="next_article">
<a href="/Scratch/fr/blog/2009-11-12-Git-for-n00b/commandes-avancees/">Git pour les nuls&nbsp;<span class="nicer">»</span></a>
</div>
</div>
<div class="flush"></div>
</div>
</div>
<div id="bottom">
<div>
<a rel="license" href="http://creativecommons.org/licenses/by-sa/3.0/deed.fr">Droits de reproduction ©, Yann Esposito</a>
</div>
<div id="lastmod">
Écrit le : 12/11/2009
modifié le : 21/12/2010
</div>
<div>
Site entièrement réalisé avec
<a href="http://www.vim.org">Vim</a>
et
<a href="http://nanoc.stoneship.org">nanoc</a>
</div>
<div>
<a href="/Scratch/fr/validation/">Validation</a>
<a href="http://validator.w3.org/check?uri=referer"> [xhtml] </a>
.
<a href="http://jigsaw.w3.org/css-validator/check/referer?profile=css3"> [css] </a>
.
<a href="http://validator.w3.org/feed/check.cgi?url=http%3A//yannesposito.com/Scratch/fr/blog/feed/feed.xml">[rss]</a>
</div>
</div>
<div class="clear"></div>
</div>
</body>
</html>