<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>piouPiouM&#039;s dev&#187; Archives pour le tag productivité – piouPiouM&#039;s dev</title>
	<atom:link href="http://pioupioum.fr/tag/productivite/feed/" rel="self" type="application/rss+xml" />
	<link>http://pioupioum.fr</link>
	<description>Bloc-note d&#039;un développeur web</description>
	<lastBuildDate>Thu, 29 Jul 2010 16:47:44 +0000</lastBuildDate>
	
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Git&#160;: des alias pour aller plus vite</title>
		<link>http://pioupioum.fr/developpement/git-alias-productivite.html</link>
		<comments>http://pioupioum.fr/developpement/git-alias-productivite.html#comments</comments>
		<pubDate>Wed, 30 Dec 2009 09:18:24 +0000</pubDate>
		<dc:creator>piouPiouM</dc:creator>
				<category><![CDATA[Développement Web]]></category>
		<category><![CDATA[astuces]]></category>
		<category><![CDATA[cheat sheets]]></category>
		<category><![CDATA[git]]></category>
		<category><![CDATA[productivité]]></category>
		<category><![CDATA[scm]]></category>

		<guid isPermaLink="false">http://pioupioum.fr/?p=295</guid>
		<description><![CDATA[Les alias sont des raccourcis vers des commandes de Git. Fini les répétitions et autres saisies de commandes rébarbatives&#160;! Pour ajouter de nouveaux alias, créez ou éditez la section [alias] de l&#8217;un des fichiers qui suivent (voir les exemples du billet pour avoir une information sur la syntaxe)&#160;:


~/.gitconfig pour en bénéficier dans tous vos dépôts.
.git/config [...]]]></description>
			<content:encoded><![CDATA[<!-- google_ad_section_start --><p>Les <strong>alias</strong> sont des <strong>raccourcis</strong> vers des commandes de <strong>Git</strong>. Fini les répétitions et autres saisies de commandes rébarbatives&#160;! Pour ajouter de nouveaux alias, créez ou éditez la section <code>[alias]</code> de l&#8217;un des fichiers qui suivent (voir les exemples du billet pour avoir une information sur la syntaxe)&#160;:</p>

<ul>
<li><code>~/.gitconfig</code> pour en bénéficier dans tous vos dépôts.</li>
<li><code>.git/config</code> d&#8217;un projet pour restreindre son accès à cet unique projet.</li>
</ul>

<p>Il est également possible de recourir à la commande <a href="http://www.kernel.org/pub/software/scm/git/docs/git-config.html" title="git-config(1) Manual Page">git config</a>&#160;:</p>

<pre><code>$ git config --global alias.st 'status'
</code></pre>

<p>Ici, la commande <code>git st</code> devient un alias de <a href="http://www.kernel.org/pub/software/scm/git/docs/git-status.html" title="git-status(1) Manual Page">git status</a>.</p>

<p><strong>Note&#160;:</strong> supprimer le flag <code>--global</code> va ajouter l&#8217;alias dans le scope du projet courant.
<span id="more-295"></span></p>

<h2 id="toc">Table des matières</h2>

<ol>
<li><a href="#mes-alias">Mes alias</a></li>
<li><a href="#alias-utilisateurs-svn">Des raccourcis pour les utilisateurs de SVN</a></li>
<li><a href="#annuler-dernier-commit">Annuler le dernier commit</a></li>
<li><a href="#editer-dernier-commit">Éditer le dernier commit</a></li>
<li><a href="#speed-diff">Faire le point rapidement</a></li>
<li><a href="#historique-sexy">Afficher un historique condensé des commits</a></li>
<li><a href="#derniers-changements-pull">Afficher les changements réalisés depuis le dernier pull</a></li>
<li><a href="#ajouter-rapidement-commit">Ajouter rapidement des fichiers à commiter</a></li>
<li><a href="#ouvrir-dans-textmate">Ouvrir dans TextMate les fichiers non commités</a></li>
</ol>

<h2 id="mes-alias">Mes alias</h2>

<p>Voici les alias que j&#8217;utilise dans le scope global, en provenance donc de mon fichier <code>~/.gitconfig</code>&#160;:</p>

<pre><code>[alias]
    amend = commit --amend
    st = status
    who = shortlog -sne
    oneline = log --pretty=oneline --abbrev-commit --graph
    changes = diff --name-status
    dic = diff --cached
    diffstat = diff --stat
    svnpull = svn rebase
    svnpush = svn dcommit
    lc = !git oneline ORIG_HEAD.. --stat --no-merges
    addm = !git-ls-files -m -z | xargs -0 git-add &amp;&amp; git status
    addu = !git-ls-files -o --exclude-standard -z | xargs -0 git-add &amp;&amp; git status
    rmm = !git ls-files -d -z | xargs -0 git-rm &amp;&amp; git status
    mate = !git-ls-files -m -z | xargs -0 mate
    mateall = !git-ls-files -m -o --exclude-standard -z | xargs -0 mate
</code></pre>

<h2 id="alias-utilisateurs-svn">Des raccourcis pour les utilisateurs de SVN</h2>

<pre><code>[alias]
    st = status
    df = diff
    co = checkout
    ci = commit
    br = branch
    svnpull = svn rebase
    svnpush = svn dcommit
</code></pre>

<p><strong>Attention&#160;:</strong> la commande <a href="http://www.kernel.org/pub/software/scm/git/docs/git-checkout.html" title="git-checkout(1) Manual Page">git checkout</a> n&#8217;a pas la même utilité dans Git que dans Subversion&#160;!</p>

<h2 id="annuler-dernier-commit">Annuler le dernier commit</h2>

<p>Le flag <code>--soft</code> va conserver les modifications dans le répertoire de travail.</p>

<pre><code>[alias]
    undo = git reset --soft HEAD^
</code></pre>

<p><strong>Important&#160;:</strong> nous travaillons ici en local. Il est malvenu d&#8217;annuler un commit sur le dépôt distant (désynchro, arbre cassé, etc). On assume ses erreurs <img src='http://pioupioum.fr/wp/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>

<h2 id="editer-dernier-commit">Éditer le dernier commit</h2>

<pre><code>[alias]
    amend = commit --amend
</code></pre>

<h2 id="speed-diff">Faire le point rapidement</h2>

<pre><code>[alias]
    changes = diff --name-status
    dic = diff --cached
    diffstat = diff --stat
</code></pre>

<h2 id="historique-sexy">Afficher un historique condensé des commits</h2>

<pre><code>[alias]
    oneline = log --pretty=oneline --abbrev-commit --graph
</code></pre>

<h2 id="derniers-changements-pull">Afficher les changements réalisés depuis le dernier pull</h2>

<pre><code>[alias]
    lc = !git oneline ORIG_HEAD.. --stat --no-merges
</code></pre>

<h2 id="ajouter-rapidement-commit">Ajouter rapidement des fichiers à commiter</h2>

<p>Les alias qui suivent vont lister les fichiers d&#8217;un certain type pour les ajouter à l&#8217;index avant commit. J&#8217;affiche ensuite l&#8217;état du projet pour valider qu&#8217;aucune erreur ne s&#8217;est produite.</p>

<p>On peut donc chaîner les commandes à condition de préfixer l&#8217;alias par un point d&#8217;exclamation&nbsp;<code>!</code>.</p>

<pre><code>[alias]
    addm = !git-ls-files -m -z | xargs -0 git-add &amp;&amp; git status                     # ajouter les fichiers modifiés.
    addu = !git-ls-files -o --exclude-standard -z | xargs -0 git-add &amp;&amp; git status  # ajouter les fichiers inconnus.
    rmm  = !git ls-files -d -z | xargs -0 git-rm &amp;&amp; git status                      # supprimer les fichiers marqués
                                                                                    # comme effacés.
</code></pre>

<h2 id="ouvrir-dans-textmate">Ouvrir dans TextMate les fichiers non commités</h2>

<p>Pratique pour reprendre son travail là où l&#8217;avait arrêté (poke <a href="http://jeremy.wordpress.com/2009/12/01/ouvrir-tous-les-fichiers-modifies-git/" title="Ouvrir tous les fichiers modifiés (git) &laquo;  Jérémy Lecour">Jérémy Lecour</a>), <code>git mate</code> permet d&#8217;ouvrir dans <a href="http://macromates.com/" title="TextMate — The Missing Editor for Mac OS X">mon éditeur de code préféré</a> les fichiers modifiés depuis le dernier commit.<br />
L&#8217;alias <code>git mateall</code> tiendra compte des fichiers inconnus de l&#8217;index du projet.</p>

<pre><code>[alias]
    mate = !git-ls-files -m -z | xargs -0 mate
    mateall = !git-ls-files -m -o --exclude-standard -z | xargs -0 mate
</code></pre>

<div class="updated">

<h5>Mises à jour</h5>

<ul>
<li>
<strong>2 juin 2010</strong><br />
Mise à jour des alias d&#8217;<a href="#ajouter-rapidement-commit">ajout rapide de fichiers à commiter</a> et d&#8217;<a href="#ouvrir-dans-textmate">édition dans TextMate</a>. Les chemins contenant des espaces provoquaient une erreur fatale.</li>
</ul>

</div>

<h3 class='related_post_title'>Continuez votre lecture sur des sujets similaires</h3>

<ul class='related_post'><li><a href='http://pioupioum.fr/developpement/git-10-commandes-utiles.html' title='Git : 10 commandes utiles'>Git&#160;: 10 commandes utiles</a></li><li><a href='http://pioupioum.fr/developpement/optimiser-rapidite-chargement-adsense-jquery.html' title='Optimiser le chargement des AdSense'>Optimiser le chargement des AdSense</a></li><li><a href='http://pioupioum.fr/snippets/wordpress-autoriser-upload-media-format-inconnu.html' title='WordPress : autoriser l&#8217;upload de fichiers au format non-supporté'>WordPress&#160;: autoriser l&#8217;upload de fichiers au format non-supporté</a></li><li><a href='http://pioupioum.fr/snippets/git-ignore-projet-flex-builder.html' title='Git ignore pour un projet Flex Builder'>Git ignore pour un projet Flex Builder</a></li><li><a href='http://pioupioum.fr/snippets/apache-rotation-logs.html' title='Rotation des logs Apache'>Rotation des logs Apache</a></li></ul>
<!-- google_ad_section_end -->]]></content:encoded>
			<wfw:commentRss>http://pioupioum.fr/developpement/git-alias-productivite.html/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
