You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
213 lines
12 KiB
HTML
213 lines
12 KiB
HTML
9 months ago
|
<!DOCTYPE html>
|
||
|
<html lang="fr">
|
||
|
<head>
|
||
|
<meta charset="utf-8">
|
||
|
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
|
||
|
<title>git - petit guide - no deep shit!</title>
|
||
|
<link href='http://fonts.googleapis.com/css?family=Chelsea+Market' rel='stylesheet' type='text/css'>
|
||
|
<link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/normalize/0/normalize.min.css" type="text/css">
|
||
|
<link rel="stylesheet" href="css/style.css" type="text/css">
|
||
|
<script type="text/javascript">
|
||
|
var _gaq = _gaq || [];
|
||
|
_gaq.push(['_setAccount', 'UA-652147-13']);
|
||
|
_gaq.push(['_trackPageview']);
|
||
|
|
||
|
(function() {
|
||
|
var ga = document.createElement('script');
|
||
|
ga.type = 'text/javascript';
|
||
|
ga.async = true;
|
||
|
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
|
||
|
var s = document.getElementsByTagName('script')[0];
|
||
|
s.parentNode.insertBefore(ga, s);
|
||
|
})();
|
||
|
function recordOutboundLink(link, category, action) {
|
||
|
_gat._getTrackerByName()._trackEvent(category, action);
|
||
|
setTimeout('document.location = "' + link.href + '"', 100);
|
||
|
}
|
||
|
</script>
|
||
|
</head>
|
||
|
<body>
|
||
|
<div class="scrollblock block-title">
|
||
|
<h1>git - petit guide</h1>
|
||
|
<p>juste un petit guide pour bien démarrer avec git. <!-- UNTRANSLATED -->no deep shit ;)</p>
|
||
|
<p class="meta">
|
||
|
<a href="index.html">english</a>
|
||
|
<br />
|
||
|
</p>
|
||
|
<img src="img/arrow.png" alt="" />
|
||
|
</div>
|
||
|
<!-- setup -->
|
||
|
<a name="setup"></a>
|
||
|
<div class="scrollblock block-setup">
|
||
|
<h2>installation</h2>
|
||
|
<p>
|
||
|
<a href="http://git-scm.com/download/mac">Télécharger git pour Mac OSX</a>
|
||
|
</p>
|
||
|
<p>
|
||
|
<a href="http://msysgit.github.io/">Télécharger git pour Windows</a>
|
||
|
</p>
|
||
|
<p>
|
||
|
<a href="http://book.git-scm.com/2_installing_git.html">Télécharger git pour Linux</a>
|
||
|
</p>
|
||
|
</div>
|
||
|
<a name="create"></a>
|
||
|
<div class="scrollblock block-create">
|
||
|
<h2>créer un nouveau dépôt</h2>
|
||
|
<p>
|
||
|
créez un nouveau dossier, ouvrez le et exécutez la commande<br />
|
||
|
<code>git init</code><br />
|
||
|
pour créer un nouveau dépôt.
|
||
|
</p>
|
||
|
</div>
|
||
|
<a name="checkout"></a>
|
||
|
<div class="scrollblock block-checkout">
|
||
|
<h2>cloner un dépôt</h2>
|
||
|
<p>
|
||
|
créez une copie de votre dépôt local en exécutant la commande<br />
|
||
|
<code>git clone /path/to/repository</code><br />
|
||
|
si vous utilisez un serveur distant, cette commande sera<br />
|
||
|
<code>git clone username@host:/path/to/repository</code>
|
||
|
</p>
|
||
|
</div>
|
||
|
<a name="trees"></a>
|
||
|
<div class="scrollblock block-trees">
|
||
|
<h2>arbres</h2>
|
||
|
<p>
|
||
|
votre dépôt local est composé de trois "arbres" gérés par git.
|
||
|
le premier est votre <code>espace de travail</code> qui contient réellement vos fichiers.
|
||
|
le second est un <code>Index</code> qui joue un rôle d'espace de transit pour vos fichiers et
|
||
|
enfin <code>HEAD</code> qui pointe vers la dernière validation que vous ayez faite.
|
||
|
</p>
|
||
|
<img src="img/trees.png" alt="" />
|
||
|
</div>
|
||
|
<a name="add"></a>
|
||
|
<div class="scrollblock block-add">
|
||
|
<h2>ajouter & valider</h2>
|
||
|
<p>
|
||
|
Vous pouvez proposer un changement (l'ajouter à l'<b>Index</b>) en exécutant les commandes<br />
|
||
|
<code>git add <filename></code><br />
|
||
|
<code>git add *</code><br />
|
||
|
C'est la première étape dans un workflow git basique. Pour valider ces changements, utilisez<br />
|
||
|
<code>git commit -m "Message de validation"</code><br />
|
||
|
Le fichier est donc ajouté au <b>HEAD</b>, mais pas encore dans votre dépôt distant.
|
||
|
</p>
|
||
|
</div>
|
||
|
<a name="push"></a>
|
||
|
<div class="scrollblock block-remote">
|
||
|
<h2>envoyer des changements</h2>
|
||
|
<p>
|
||
|
Vos changements sont maintenant dans le <b>HEAD</b> de la copie de votre dépôt local. Pour les envoyer à votre dépôt distant, exécutez la commande<br />
|
||
|
<code>git push origin master</code><br />
|
||
|
Remplacez <i>master</i> par la branche dans laquelle vous souhaitez envoyer vos changements.
|
||
|
<br /><br />
|
||
|
Si vous n'avez pas cloné votre dépôt existant et voulez le connecter à votre dépôt sur un serveur distant, vous devez l'ajouter avec<br />
|
||
|
<code>git remote add origin <server></code><br />
|
||
|
Maintenant, vous pouvez envoyer vos changements vers le serveur distant sélectionné<br />
|
||
|
|
||
|
</p>
|
||
|
</div>
|
||
|
<a name="branching"></a>
|
||
|
<div class="scrollblock block-branching">
|
||
|
<h2>branches</h2>
|
||
|
<p>
|
||
|
Les branches sont utilisées pour développer des fonctionnalités isolées des autres.
|
||
|
La branche <i>master</i> est la branche par défaut quand vous créez un dépôt.
|
||
|
Utilisez les autres branches pour le développement et fusionnez ensuite à la branche principale quand vous avez fini.
|
||
|
</p>
|
||
|
<img src="img/branches.png" alt="" />
|
||
|
<p>
|
||
|
créer une nouvelle branche nommée "feature_x" et <!-- BAD TRANSLATE -->passer dessus pour l'utiliser<br />
|
||
|
<code>git checkout -b feature_x</code><br />
|
||
|
retourner sur la branche principale<br />
|
||
|
<code>git checkout master</code><br />
|
||
|
et supprimer la branche<br />
|
||
|
<code>git branch -d feature_x</code><br />
|
||
|
une branche n'est <i>pas disponible pour les autres</i> tant que vous ne l'aurez pas envoyée vers votre dépôt distant<br />
|
||
|
<code>git push origin <branch></code>
|
||
|
</p>
|
||
|
</div>
|
||
|
<a name="update"></a>
|
||
|
<div class="scrollblock block-merging">
|
||
|
<h2>mettre à jour & fusionner</h2>
|
||
|
<p>
|
||
|
pour mettre à jour votre dépôt local vers les dernières validations, exécutez la commande<br />
|
||
|
<code>git pull</code><br />
|
||
|
dans votre espace de travail pour <i>récupérer</i> et <i>fusionner</i> les changements distants.<br />
|
||
|
pour fusionner une autre branche avec la branche active (par exemple master), utilisez<br />
|
||
|
<code>git merge <branch></code><br />
|
||
|
dans les deux cas, git tente d'auto-fusionner les changements. Malheureusement, ça n'est pas toujours possible et résulte par des <i>conflits</i>.
|
||
|
Vous devez alors régler ces <i>conflits</i>
|
||
|
manuellement en éditant les fichiers indiqués par git. Après l'avoir fait, vous devez les marquer comme fusionnés avec<br />
|
||
|
<code>git add <filename></code><br />
|
||
|
après avoir fusionné les changements, vous pouvez en avoir un aperçu en utilisant<br />
|
||
|
<code>git diff <source_branch> <target_branch></code>
|
||
|
</p>
|
||
|
</div>
|
||
|
<a name="tagging"></a>
|
||
|
<div class="scrollblock block-tagging">
|
||
|
<h2>tags</h2>
|
||
|
<p>
|
||
|
il est recommandé de créer des tags pour les releases de programmes. c'est un concept connu, qui existe aussi dans SVN. Vous pouvez créer un tag nommé <i>1.0.0</i> en exécutant la commande<br />
|
||
|
<code>git tag 1.0.0 1b2e1d63ff</code><br />
|
||
|
le <i>1b2e1d63ff</i> désigne les 10 premiers caractères de l'identifiant du changement que vous voulez référencer avec ce tag. Vous pouvez obtenir cet identifiant avec <br />
|
||
|
<code>git log</code><br />
|
||
|
vous pouvez utiliser moins de caractères de cet identifiant, il doit juste rester unique.
|
||
|
</p>
|
||
|
</div>
|
||
|
<a name="checkout-replace"></a>
|
||
|
<div class="scrollblock block-checkout-replace">
|
||
|
<h2>remplacer les changements locaux</h2>
|
||
|
<p>
|
||
|
Dans le cas où vous auriez fait quelque chose de travers (ce qui bien entendu n'arrive jamais ;) vous pouvez annuler les changements locaux en utilisant cette commande<br />
|
||
|
<code>git checkout -- <filename></code><br />
|
||
|
cela remplacera les changements dans votre arbre de travail avec le dernier contenu du HEAD. Les changements déjà ajoutés à l'index, aussi bien les nouveaux fichiers, seront gardés.
|
||
|
</p>
|
||
|
<p>
|
||
|
Si à la place vous voulez supprimer tous les changements et validations locaux, récupérez le dernier historique depuis le serveur et pointez la branche principale locale dessus comme ceci<br />
|
||
|
<code>git fetch origin</code><br />
|
||
|
<code>git reset --hard origin/master</code>
|
||
|
</p>
|
||
|
</div>
|
||
|
<a name="hints"></a>
|
||
|
<div class="scrollblock block-hints">
|
||
|
<h2>conseils utiles</h2>
|
||
|
<p>
|
||
|
Interface git incluse<br />
|
||
|
<code>gitk</code><br />
|
||
|
utiliser des couleurs dans la sortie de git<br />
|
||
|
<code>git config color.ui true</code><br />
|
||
|
afficher le journal sur une seule ligne pour chaque validation<br />
|
||
|
<code>git config format.pretty oneline</code><br />
|
||
|
utiliser l'ajout interactif<br />
|
||
|
<code>git add -i</code>
|
||
|
</p>
|
||
|
</div>
|
||
|
<a name="resources"></a>
|
||
|
<div class="scrollblock block-resources">
|
||
|
<h2>liens et ressources</h2>
|
||
|
<h3>clients graphiques</h3>
|
||
|
<p>
|
||
|
<ul>
|
||
|
<li><a href="http://gitx.laullon.com/">GitX (L) (OSX, open source)</a></li>
|
||
|
<li><a href="http://www.git-tower.com/">Tower (OSX)</a></li>
|
||
|
<li><a href="http://www.sourcetreeapp.com/">Source Tree (OSX, free)</a></li>
|
||
|
<li><a href="http://mac.github.com/">GitHub for Mac (OSX, free)</a></li>
|
||
|
<li><a href="https://itunes.apple.com/gb/app/gitbox/id403388357?mt=12">GitBox (OSX)</a></li>
|
||
|
<li><a href="https://code.google.com/p/gitextensions/">Git Extensions (WIN, open source)</a></li>
|
||
|
</ul>
|
||
|
</p>
|
||
|
<h3>guides</h3>
|
||
|
<p>
|
||
|
<ul>
|
||
|
<li><a href="http://book.git-scm.com/">Git Community Book</a></li>
|
||
|
<li><a href="http://progit.org/book/">Pro Git</a></li>
|
||
|
<li><a href="http://think-like-a-git.net/">Think like a git</a></li>
|
||
|
<li><a href="http://help.github.com/">GitHub Help</a></li>
|
||
|
<li><a href="http://marklodato.github.com/visual-git-guide/index-en.html">A Visual Git Guide</a></li>
|
||
|
</ul>
|
||
|
</p>
|
||
|
</div>
|
||
|
<a href="files/git_cheat_sheet.pdf" onClick="recordOutboundLink(this, 'Cheat Sheet', 'git-guide'); return false;" class="cheatsheet"></a>
|
||
|
</body>
|
||
|
</html>
|