{"id":711,"date":"2012-11-10T23:46:49","date_gmt":"2012-11-10T22:46:49","guid":{"rendered":"http:\/\/www.unicoda.com\/?p=711"},"modified":"2012-12-11T22:10:50","modified_gmt":"2012-12-11T21:10:50","slug":"git-les-commandes-de-base","status":"publish","type":"post","link":"https:\/\/www.unicoda.com\/?p=711","title":{"rendered":"Git: Les commandes de base"},"content":{"rendered":"<p>Passons en revue les commandes basiques dont vous aurez besoin d\u00e8s les premiers instants de votre utilisation de Git.<\/p>\n<p>Pour cr\u00e9er un nouveau d\u00e9p\u00f4t, il suffit de cr\u00e9er un dossier pour celui-ci puis d&rsquo;effectuer un <strong><em>git init<\/em><\/strong> en se pla\u00e7ant dans le dossier.<br \/>\nA noter que dans notre cas, l&rsquo;utilisation de Gitolite implique que le d\u00e9p\u00f4t doit \u00eatre cr\u00e9er par un administrateur en modifiant conf\/gitolite.conf.<br \/>\nPour cloner un d\u00e9p\u00f4t existant, c&rsquo;est-\u00e0-dire, le r\u00e9cup\u00e9rer sur votre machine:<br \/>\n<strong><em>git clone http:\/\/github.com\/path\/depository.git<\/em><\/strong><br \/>\nPar exemple, ou avec <em>ssh:\/\/<\/em> selon le protocole.<\/p>\n<p>Pour conna\u00eetre les fichiers modifi\u00e9s r\u00e9cemment:<br \/>\n<strong><em>git status<\/em><\/strong><\/p>\n<p>Pour voir ce qui a \u00e9t\u00e9 chang\u00e9:<br \/>\n<strong><em>git diff<\/em><\/strong><br \/>\nIl est possible de sp\u00e9cifier un fichier apr\u00e8s diff.<\/p>\n<p>Pour ajouter des fichiers \u00e0 prendre en compte lors du commit:<br \/>\n<strong><em>git add fichier1 fichier2<\/em><\/strong><\/p>\n<p>Pour faire un commit, ie sauvegarder vos changements:<br \/>\n<strong><em>git commit<\/em><\/strong><br \/>\n<strong><em>git commit -a<\/em><\/strong> pour inclure tous les fichiers list\u00e9s dans git status.<br \/>\n<strong><em>git commit fichier1 fichier2<\/em><\/strong> pour indiquer pr\u00e9cis\u00e9ment quels fichiers inclure.<\/p>\n<p>Visionner les logs:<br \/>\n<strong><em>git log<\/em><\/strong><br \/>\nOptions utiles: -p ou &#8211;stat<\/p>\n<p>Modifier le dernier message de commit:<br \/>\n<strong><em>git commit &#8211;amend<\/em><\/strong><\/p>\n<p>Annuler le dernier commit:<br \/>\n<strong><em>git reset HEAD^<\/em><\/strong> (Les fichiers restent modifi\u00e9s)<br \/>\n<strong><em>git reset &#8211;hard HEAD^<\/em><\/strong> (Les changements effectu\u00e9s dans les fichiers seront perdus)<\/p>\n<p>Restaurer un fichier \u00e0 son \u00e9tat du dernier commit:<br \/>\n<strong><em>git checkout fichier<\/em><\/strong><\/p>\n<p>R\u00e9cup\u00e9rer les nouveaut\u00e9s pr\u00e9sentes sur le serveur:<br \/>\n<strong><em>git pull<\/em><\/strong><\/p>\n<p>Envoyer ses propres modifications au serveur:<br \/>\n<strong><em>git push<\/em><\/strong><\/p>\n<p>Annul\u00e9 un commit publi\u00e9:<br \/>\n<strong><em>git revert idDuCommit<\/em><\/strong><\/p>\n<h1>Les branches<\/h1>\n<p>Quand faire une branche:<br \/>\n\u00ab\u00a0Cr\u00e9ez une branche pour toute modification que vous vous appr\u00eatez \u00e0 faire et qui risque d\u2019\u00eatre un peu longue.\u00a0\u00bb<\/p>\n<p>Voir les branches:<br \/>\n<strong><em>git branch<\/em><\/strong><br \/>\nOn trouve une \u00e9toile devant la branche o\u00f9 on se trouve.<\/p>\n<p>Cr\u00e9er une branche:<br \/>\n<strong><em>git branch nomBranche<\/em><\/strong><\/p>\n<p>Se placer dans une branche:<br \/>\n<strong><em>git checkout nomBranche<\/em><\/strong><\/p>\n<p>Fusionner une branche dans la branche o\u00f9 vous vous trouvez:<br \/>\n<strong><em>git merge nomBranche<\/em><\/strong><\/p>\n<p>Scier\/Supprimer une branche:<br \/>\n<strong><em>git branch -d nomBranche<\/em><\/strong><\/p>\n<p>Pour changer de branche sans avoir \u00e0 faire un commit avant:<br \/>\n<strong><em>git stash<\/em><\/strong><br \/>\nA pour effet de mettre de c\u00f4t\u00e9 les fichiers en cours de modification.<br \/>\nOn peut alors changer de branche, faire des modifs et revenir dans la branche pr\u00e9c\u00e9dente o\u00f9 on retrouve son travail avec:<br \/>\n<strong><em>git stash apply<\/em><\/strong><\/p>\n<h1>Autres fonctionnalit\u00e9s:<\/h1>\n<p>Tagger un commit:<br \/>\n<strong><em>git tag nomTag idCommit<\/em><\/strong><\/p>\n<p>Appliquer les tags:<br \/>\n<strong><em>git push -tags<\/em><\/strong><\/p>\n<p>Supprimer un tag:<br \/>\n<strong><em>git tag -d nomTag<\/em><\/strong><\/p>\n<p>Chercher les fichiers contenant un mot:<br \/>\n<strong><em>git grep \u00ab\u00a0mot\u00a0\u00bb<\/em><\/strong><\/p>\n<p>Pour obtenir \u00e9galement le num\u00e9ro de ligne:<br \/>\n<strong><em>git grep -n \u00ab\u00a0mot\u00a0\u00bb<\/em><\/strong><\/p>\n<p>Je crois qu&rsquo;on a fait le tour. Pour le reste, direction le manuel ou la <a href=\"http:\/\/git-scm.com\/documentation\">doc en ligne<\/a> ;).<br \/>\n<a href=\"http:\/\/git-scm.com\/book\/fr\">ProGit<\/a> Version Fran\u00e7aise.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Passons en revue les commandes basiques dont vous aurez besoin d\u00e8s les premiers instants de votre utilisation de Git. Pour cr\u00e9er un nouveau d\u00e9p\u00f4t, il suffit de cr\u00e9er un dossier pour celui-ci puis d&rsquo;effectuer un git init en se pla\u00e7ant dans le dossier. A noter que dans notre cas, l&rsquo;utilisation de Gitolite implique que le &hellip; <a href=\"https:\/\/www.unicoda.com\/?p=711\" class=\"more-link\">Continuer la lecture<span class=\"screen-reader-text\"> de &laquo;&nbsp;Git: Les commandes de base&nbsp;&raquo;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[5],"tags":[15],"class_list":["post-711","post","type-post","status-publish","format-standard","hentry","category-terminal","tag-git"],"_links":{"self":[{"href":"https:\/\/www.unicoda.com\/index.php?rest_route=\/wp\/v2\/posts\/711","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.unicoda.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.unicoda.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.unicoda.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.unicoda.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=711"}],"version-history":[{"count":12,"href":"https:\/\/www.unicoda.com\/index.php?rest_route=\/wp\/v2\/posts\/711\/revisions"}],"predecessor-version":[{"id":813,"href":"https:\/\/www.unicoda.com\/index.php?rest_route=\/wp\/v2\/posts\/711\/revisions\/813"}],"wp:attachment":[{"href":"https:\/\/www.unicoda.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=711"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.unicoda.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=711"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.unicoda.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=711"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}