317 lines
No EOL
15 KiB
HTML
317 lines
No EOL
15 KiB
HTML
<?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>
|
|
|
|
<title>Git pour les nuls</title>
|
|
</head>
|
|
<body lang="fr">
|
|
<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">↓ Menu ↓</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>
|
|
<img src="/Scratch/img/presentation.png" alt="Presentation drawing"/>
|
|
<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</a></li><li><a href="/Scratch/fr/blog/2009-11-12-Git-for-n00b/Git-pour-quoi-faire/">Git pour quoi faire ?</a></li><li><span class="active" title="You're here.">Avant l'utilisation, la configuration</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</a></li><li><a href="/Scratch/fr/blog/2009-11-12-Git-for-n00b/comprendre/">Comprendre</a></li><li><a href="/Scratch/fr/blog/2009-11-12-Git-for-n00b/commandes-avancees/">Liste de commandes</a></li></ul></div>
|
|
|
|
<div class="flush"></div>
|
|
<div id="afterheader">
|
|
<div class="corps">
|
|
<h1 class="first" id="avant-lutilisation-la-configuration">Avant l’utilisation, la configuration</h1>
|
|
|
|
<h2 id="installation">installation</h2>
|
|
|
|
<p>Sous Linux Ubuntu ou Debian :</p>
|
|
|
|
<div><pre class="twilight">$ sudo apt-get install git
|
|
</pre></div>
|
|
|
|
<p>Sous Mac OS X :</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"> ➥ 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>"if (($0)); then nb=$(( $0 - 1 )); else nb=0; fi; i=0; while ((i<=nb)); do git revert -n --no-edit HEAD~$i; ((i++)); done; git commit -m \"revert to $0 version(s) back\""<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 :</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. J’ai 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 d’un 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>S’il n’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’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 :</p>
|
|
|
|
<div><pre class="twilight">
|
|
$ ssh-keygen -t rsa
|
|
</pre></div>
|
|
|
|
<p>Répondez aux question et n’entrez <strong>surtout PAS</strong> de mot de passe. Ensuite copiez les clés sur le serveur distant. Ce n’est pas la façon la plus sûre de procéder. L’idéal étant d’écrire quand même un mot de passe et d’utiliser <code>ssh-agent</code>.</p>
|
|
|
|
<p>Ensuite le plus simple, si vous possédez <code>ssh-copy-id</code> (sous Ubuntu par exemple) :</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 :</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">>></span> <span class="Keyword">~</span>/.ssh/authorized_keys
|
|
me@main.server$ rm id_rsa.pub
|
|
me@main.server$ logout
|
|
</pre></div>
|
|
|
|
<p>Maintenant vous n’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>
|
|
|
|
<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">"</span>Initial commit<span class="String">"</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 :</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 qu’il soit en mode <code>bare</code>. C’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 :</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 :</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 s’en servir maintenant pour obtenir toutes les jolie promesses faites dans la première partie.</p>
|
|
|
|
|
|
</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> 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 <span class="nicer">»</span></a></div>
|
|
</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>
|
|
|
|
</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/';
|
|
</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/">Accueil</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-10-30-How-to-handle-evil-IE/"><span class="nicer">«</span> Une CSS pour IE seulement</a>
|
|
</div>
|
|
|
|
|
|
<div class="previous_article">
|
|
<a href="/Scratch/fr/blog/2009-10-28-custom-website-synchronisation-with-mobileme--2-/"><span class="nicer">«</span> Synchronisation avec mobileme (2)</a>
|
|
</div>
|
|
|
|
|
|
<div class="previous_article">
|
|
<a href="/Scratch/fr/blog/2009-10-Wait-to-hide-a-menu-in-jQuery/"><span class="nicer">«</span> Un menu qui attends avant de se cacher</a>
|
|
</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 <span class="nicer">»</span></a>
|
|
</div>
|
|
|
|
|
|
<div class="next_article">
|
|
<a href="/Scratch/fr/blog/2009-12-14-Git-vs--Bzr/">Git ou Bazaar ? <span class="nicer">»</span></a>
|
|
</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 <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 : 20/09/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> |