scratch/output/Scratch/fr/blog/2009-11-12-Git-for-n00b/conf-et-install/index.html

318 lines
16 KiB
HTML
Raw Normal View History

2011-04-20 12:29:01 +00:00
<?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" />
2011-04-20 12:29:01 +00:00
<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>
2011-04-20 12:29:01 +00:00
<!--[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>
2011-10-18 22:30:00 +00:00
<body lang="fr" class="article">
2011-04-20 12:29:01 +00:00
<script type="text/javascript">// <![CDATA[
document.write('<div id="blackpage"><img src="/Scratch/img/loading.gif" alt="Chargement en cours..."/></div>');
2011-04-20 12:29:01 +00:00
// ]]>
</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>
2011-04-20 12:29:01 +00:00
</div>
2011-09-28 16:05:55 +00:00
<div class="flush"></div>
2011-04-20 12:29:01 +00:00
</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>
2011-04-20 12:29:01 +00:00
<div class="flush"></div>
<div id="afterheader">
<div class="corps">
2011-12-07 16:37:23 +00:00
<h1 class="first" id="avant-lutilisation-la-configuration">Avant l&rsquo;utilisation, la configuration</h1>
2011-04-20 12:29:01 +00:00
<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">
2011-04-20 12:29:01 +00:00
<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 =&nbsp;!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>
2011-12-07 16:37:23 +00:00
<p>Voilà, la configuration de base est terminée. J&rsquo;ai créé dans le fichier de configuration global des <em>alias</em> qui vont permettre de taper des commandes un peu plus courtes.</p>
2011-04-20 12:29:01 +00:00
2011-12-07 16:37:23 +00:00
<h2 id="rcupration-dun-projet-dj-versionn">Récupération d&rsquo;un projet déjà versionné</h2>
2011-04-20 12:29:01 +00:00
<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>
2011-12-07 16:37:23 +00:00
<p>S&rsquo;il n&rsquo;y 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 l&rsquo;url 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>
2011-04-20 12:29:01 +00:00
<div><pre class="twilight">
$ ssh-keygen -t rsa
</pre></div>
2011-12-07 16:37:23 +00:00
<p>Répondez aux question et n&rsquo;entrez <strong>surtout PAS</strong> de mot de passe. Ensuite copiez les clés sur le serveur distant. Ce n&rsquo;est pas la façon la plus sûre de procéder. L&rsquo;idéal étant d&rsquo;écrire quand même un mot de passe et d&rsquo;utiliser <code>ssh-agent</code>.</p>
2011-04-20 12:29:01 +00:00
<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>
2011-12-07 16:37:23 +00:00
<p>Maintenant vous n&rsquo;avez 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>
2011-04-20 12:29:01 +00:00
<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>
2011-12-07 16:37:23 +00:00
<p>Maintenant si vous voulez créer un repository sur un serveur distant, il faut absolument qu&rsquo;il soit en mode <code>bare</code>. C&rsquo;est-à-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>
2011-04-20 12:29:01 +00:00
<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>
2011-12-07 16:37:23 +00:00
<p>Vous avez maintenant un répertoire sur votre ordinateur local. Il est versionné. Vous pouvez vous en rendre compte parcequ&rsquo;à 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>
2011-04-20 12:29:01 +00:00
2011-12-07 16:37:23 +00:00
<p>Il ne reste plus qu&rsquo;à savoir comment s&rsquo;en servir maintenant pour obtenir toutes les jolies promesses faites dans la première partie.</p>
2011-04-20 12:29:01 +00:00
</div>
<div class="navigation">
<div class="navigationprev"><a href="/Scratch/fr/blog/2009-11-12-Git-for-n00b/Git-pour-quoi-faire/"><span class="nicer">«</span>&nbsp;précédent</a></div>
<div class="navigationnext"><a href="/Scratch/fr/blog/2009-11-12-Git-for-n00b/c-est-parti-pour-l-aventure/">suivant&nbsp;<span class="nicer">»</span></a></div>
2011-04-20 12:29:01 +00:00
</div>
<div class="flush"></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/';
var idcomments_post_url = 'http://yannesposito.com/Scratch/fr/blog/2009-11-12-Git-for-n00b/';
2011-04-20 12:29:01 +00:00
</script>
<span id="IDCommentsPostTitle" style="display:none"></span>
<script type='text/javascript' src='/Scratch/js/genericCommentWrapperV2.js'></script>
2011-04-20 12:29:01 +00:00
</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>
2011-04-20 12:29:01 +00:00
</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-10-30-How-to-handle-evil-IE/"><span class="nicer">«</span>&nbsp;Une CSS pour IE seulement</a>
2011-04-20 12:29:01 +00:00
</div>
<div class="previous_article">
<a href="/Scratch/fr/blog/2009-10-28-custom-website-synchronisation-with-mobileme--2-/"><span class="nicer">«</span>&nbsp;Synchronisation avec mobileme (2)</a>
2011-04-20 12:29:01 +00:00
</div>
<div class="previous_article">
<a href="/Scratch/fr/blog/2009-10-Wait-to-hide-a-menu-in-jQuery/"><span class="nicer">«</span>&nbsp;Un menu qui attends avant de se cacher</a>
2011-04-20 12:29:01 +00:00
</div>
</div>
<div id="next_articles">
articles suivants
<div class="next_article">
<a href="/Scratch/fr/blog/2009-12-06-iphone-call-filter/">Filtrage d'appel avec l'iPhone&nbsp;<span class="nicer">»</span></a>
2011-04-20 12:29:01 +00:00
</div>
<div class="next_article">
<a href="/Scratch/fr/blog/2009-12-14-Git-vs--Bzr/">Git ou Bazaar ?&nbsp;<span class="nicer">»</span></a>
2011-04-20 12:29:01 +00:00
</div>
<div class="next_article">
<a href="/Scratch/fr/blog/2010-01-04-Change-default-shell-on-Mac-OS-X/">Changer le shell par défaut sous Mac OS X&nbsp;<span class="nicer">»</span></a>
2011-04-20 12:29:01 +00:00
</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>
2011-04-20 12:29:01 +00:00
<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>
2011-04-20 12:29:01 +00:00
</div>
</div>
<div class="clear"></div>
</div>
</body>
</html>