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

353 lines
15 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" />
2012-04-02 21:43:39 +00:00
<link rel="stylesheet" type="text/css" href="/Scratch/css/solarized.css" />
<link rel="stylesheet" type="text/css" href="/Scratch/css/idc.css" />
2012-05-02 15:43:56 +00:00
<link href='http://fonts.googleapis.com/css?family=Inconsolata' rel='stylesheet' type='text/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>
2012-05-02 15:43:56 +00:00
<script type="text/javascript" src="/Scratch/js/highlight/highlight.pack.js"></script>
<script type="text/javascript" src="/Scratch/js/article.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>
2012-03-19 14:33:41 +00:00
<div id="sousliens"><ul><li><a href="/Scratch/fr/blog/2009-11-12-Git-for-n00b/">la conclusion 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">
2012-05-02 15:43:56 +00:00
<h1 class="first" id="avant-lutilisation-la-configuration">Avant lutilisation, la configuration</h1>
2011-04-20 12:29:01 +00:00
<h2 id="installation">installation</h2>
<p>Sous Linux Ubuntu ou Debian&nbsp;:</p>
2012-05-02 15:43:56 +00:00
<div>
<pre><code class="zsh">$ sudo apt-get install git</code></pre>
</div>
2011-04-20 12:29:01 +00:00
<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>
2012-05-02 15:43:56 +00:00
<div>
<pre><code class="zsh">$ sudo port selfupdate
2011-04-20 12:29:01 +00:00
$ sudo port install git-core
2012-05-02 15:43:56 +00:00
</code></pre>
</div>
2011-04-20 12:29:01 +00:00
<h2 id="configuration-globale">Configuration globale</h2>
<p>Enregistrez le fichier suivant comme le fichier <code>~/.gitconfig</code>.</p>
2012-05-02 15:43:56 +00:00
<div><div class="codefile"><a href="/Scratch/fr/blog/2009-11-12-Git-for-n00b/conf-et-install/code/gitconfig">&#x27A5; gitconfig</a></div>
<pre><code class="zsh">[color]
2011-04-20 12:29:01 +00:00
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
2012-05-02 15:43:56 +00:00
# there should be an article on what this command do
uncommit = !zsh -c '"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 \"revert to $0 version(s) back\""'
2011-04-20 12:29:01 +00:00
undomerge = reset --hard ORIG_HEAD
2012-05-02 15:43:56 +00:00
conflict = !gitk --left-right HEAD...MERGE_HEAD
# under Mac OS X, you should use gitx instead
# conflict = !gitx --left-right HEAD...MERGE_HEAD
2011-04-20 12:29:01 +00:00
[branch]
autosetupmerge = true
2012-05-02 15:43:56 +00:00
</code></pre>
</div>
2011-04-20 12:29:01 +00:00
<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>
2012-05-02 15:43:56 +00:00
<div>
<pre><code class="zsh">$ git config --global user.name John Doe
2011-04-20 12:29:01 +00:00
$ git config --global user.email john.doe@email.com
2012-05-02 15:43:56 +00:00
</code></pre>
</div>
2011-04-20 12:29:01 +00:00
2012-05-02 15:43:56 +00:00
<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>
2011-04-20 12:29:01 +00:00
2012-05-02 15:43:56 +00:00
<h2 id="rcupration-dun-projet-dj-versionn">Récupération dun 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>
2012-05-02 15:43:56 +00:00
<div>
<pre><code class="zsh">$ cd ~/Projets
2011-04-20 12:29:01 +00:00
$ git clone git://main.server/path/to/file
2012-05-02 15:43:56 +00:00
</code></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>
2011-04-20 12:29:01 +00:00
2012-05-02 15:43:56 +00:00
<pre><code class="zsh">$ ssh-keygen -t rsa
</code></pre>
2011-04-20 12:29:01 +00:00
2012-05-02 15:43:56 +00:00
</div>
2011-04-20 12:29:01 +00:00
2012-05-02 15:43:56 +00:00
<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>
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>
2012-05-02 15:43:56 +00:00
<div>
<pre><code class="zsh">me@locahost$ ssh-copy-id -i ~/.ssh/id_rsa.pub me@main.server
</code></pre>
</div>
2011-04-20 12:29:01 +00:00
<p>ou manuellement&nbsp;:</p>
2012-05-02 15:43:56 +00:00
<div>
<pre><code class="zsh">me@locahost$ scp ~/.ssh/id_rsa.pub me@main.server:
2011-04-20 12:29:01 +00:00
me@locahost$ ssh me@main.server
password:
2012-05-02 15:43:56 +00:00
me@main.server$ cat id_rsa.pub &gt;&gt; ~/.ssh/authorized_keys
2011-04-20 12:29:01 +00:00
me@main.server$ rm id_rsa.pub
me@main.server$ logout
2012-05-02 15:43:56 +00:00
</code></pre>
2011-04-20 12:29:01 +00:00
2012-05-02 15:43:56 +00:00
</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>
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>
2012-05-02 15:43:56 +00:00
<div>
<pre><code class="zsh">$ cd /path/to/project
2011-04-20 12:29:01 +00:00
$ git init
$ git add .
2012-05-02 15:43:56 +00:00
$ git commit -m "Initial commit"
</code></pre>
</div>
2011-04-20 12:29:01 +00:00
<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>
2012-05-02 15:43:56 +00:00
<div>
<pre><code class="zsh">*.o
2011-04-20 12:29:01 +00:00
*.bak
*.swp
*~
2012-05-02 15:43:56 +00:00
</code></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>
2011-04-20 12:29:01 +00:00
2012-05-02 15:43:56 +00:00
<div>
2011-04-20 12:29:01 +00:00
2012-05-02 15:43:56 +00:00
<pre><code class="zsh">$ cd /path/to/local/project
2011-04-20 12:29:01 +00:00
$ git clone --bare . ssh://server/path/to/project
2012-05-02 15:43:56 +00:00
</code></pre>
</div>
2011-04-20 12:29:01 +00:00
<p>Les autres pourront alors récupérer les modifications via la commande vue précédemment&nbsp;:</p>
2012-05-02 15:43:56 +00:00
<div>
<pre><code class="zsh">git clone ssh://server/path/to/project
</code></pre>
</div>
2011-04-20 12:29:01 +00:00
<h2 id="rsum-de-la-seconde-tape">Résumé de la seconde étape</h2>
2012-05-02 15:43:56 +00:00
<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>
2011-04-20 12:29:01 +00:00
2012-05-02 15:43:56 +00:00
<p>Il ne reste plus quà savoir comment sen servir maintenant pour obtenir toutes les jolies promesses faites dans la première partie.</p>
2011-04-20 12:29:01 +00:00
</div>
2012-04-10 13:56:34 +00:00
<div id="social">
<div class="left"> <a href="https://twitter.com/share" class="twitter-share-button" data-via="yogsototh">Tweet</a>
<script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src="//platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");</script>
</div>
<div class="left"> <div class="g-plusone" data-size="medium" data-annotation="inline" data-width="106"></div>
<script type="text/javascript">
(function() {
var po = document.createElement('script'); po.type = 'text/javascript'; po.async = true;
po.src = 'https://apis.google.com/js/plusone.js';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(po, s);
})();
</script>
</div>
<div class="flush"></div>
</div>
2011-04-20 12:29:01 +00:00
<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();
}
2012-04-10 13:56:34 +00:00
document.write('<div id="clickcomment">Commentaires &amp; Partage</div>');
2011-04-20 12:29:01 +00:00
</script>
<div class="flush"></div>
2012-04-10 13:56:34 +00:00
2011-04-20 12:29:01 +00:00
<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';
2012-01-11 20:40:22 +00:00
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/';
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">
2012-01-11 20:40:22 +00:00
<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>
2011-04-20 12:29:01 +00:00
</div>
</div>
<div id="next_articles">
articles suivants
<div class="next_article">
2012-01-11 20:40:22 +00:00
<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>
2011-04-20 12:29:01 +00:00
</div>
<div class="next_article">
2012-01-11 20:40:22 +00:00
<a href="/Scratch/fr/blog/2009-11-12-Git-for-n00b/comprendre/">Git pour les nuls&nbsp;<span class="nicer">»</span></a>
2011-04-20 12:29:01 +00:00
</div>
<div class="next_article">
2012-01-11 20:40:22 +00:00
<a href="/Scratch/fr/blog/2009-11-12-Git-for-n00b/commandes-avancees/">Git pour les nuls&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">
2012-04-02 21:43:39 +00:00
<div>
2012-04-10 13:56:34 +00:00
<a href="https://twitter.com/yogsototh">Follow @yogsototh</a>
2012-04-02 21:43:39 +00:00
</div>
2011-04-20 12:29:01 +00:00
<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>
<div class="clear"></div>
</div>
</body>
</html>