{"id":20140666,"url":"https://github.com/goffinet/git","last_synced_at":"2026-02-24T02:32:12.125Z","repository":{"id":116034169,"uuid":"179131549","full_name":"goffinet/git","owner":"goffinet","description":null,"archived":false,"fork":false,"pushed_at":"2019-05-16T13:20:33.000Z","size":5161,"stargazers_count":4,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-02T23:28:33.362Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Dockerfile","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/goffinet.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-04-02T17:59:55.000Z","updated_at":"2023-10-10T14:20:21.000Z","dependencies_parsed_at":null,"dependency_job_id":"9829db43-6726-41ef-bf58-c7aea2acaa24","html_url":"https://github.com/goffinet/git","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/goffinet/git","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/goffinet%2Fgit","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/goffinet%2Fgit/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/goffinet%2Fgit/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/goffinet%2Fgit/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/goffinet","download_url":"https://codeload.github.com/goffinet/git/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/goffinet%2Fgit/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29769176,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-24T01:40:24.820Z","status":"online","status_checked_at":"2026-02-24T02:00:07.497Z","response_time":75,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-13T21:53:03.970Z","updated_at":"2026-02-24T02:32:12.069Z","avatar_url":"https://github.com/goffinet.png","language":"Dockerfile","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Apprendre Git (Pro Git v2)\n\n![Page de garde](cover_small.jpg)\n\nSource : [https://github.com/goffinet/git](https://github.com/goffinet/git)\n\nDate de fabrication : {{ gitbook.time }}\n\nTéléchargements des supports\n\n* [PDF](https://git.goffinet.org/pdf.html)\n* [MOBI](https://git.goffinet.org/mobi.html)\n* [EPUB](https://git.goffinet.org/epub.html)\n\n\n## Autres références\n\n* **[Pro Git, le livre original](https://book.git-scm.com/book/fr/v2), [PDF](https://github.com/progit/progit2-fr/releases/download/2.1.32/progit_v2.1.32.pdf)**\n* [Création d'un compte Github](https://nexus-coding.blogspot.com/2015/10/tutoriel-creation-dun-compte-github-et.html)\n* [git - petit guide](http://rogerdudler.github.io/git-guide/index.fr.html), [PDF](http://rogerdudler.github.io/git-guide/files/git_cheat_sheet.pdf)\n* [Ajouter une clé SSH à son compte github](https://help.github.com/articles/adding-a-new-ssh-key-to-your-github-account/)\n* [Changer d'origine https en ssh](https://help.github.com/articles/changing-a-remote-s-url/)\n* [Git Cheat Sheet from Gitlab](https://about.gitlab.com/images/press/git-cheat-sheet.pdf)\n\n## Exercices pratiques\n\n[Github Learning Lab](https://lab.github.com/courses)\n\n## Auteurs\n\nScott Chacon\n\nBen Straub  \n\n\u003c!--\n\nTable des matières\n\n-   [Licence](#_licence)\n-   [Préface par Scott Chacon](#_préface_par_scott_chacon)\n-   [Préface par Ben Straub](#_préface_par_ben_straub)\n-   [Dédicaces](#_dédicaces)\n-   [Introduction](#_introduction)\n-   [Démarrage rapide](#ch01-introduction)\n    -   [À propos de la gestion de\n        version](#_À_propos_de_la_gestion_de_version)\n    -   [Une rapide histoire de Git](#_une_rapide_histoire_de_git)\n    -   [Rudiments de Git](#_rudiments_de_git)\n    -   [La ligne de commande](#_la_ligne_de_commande)\n    -   [Installation de Git](#_installation_de_git)\n    -   [Paramétrage à la première utilisation de Git](#s_first_time)\n    -   [Obtenir de l’aide](#s_git_help)\n    -   [Résumé](#_résumé)\n-   [Les bases de Git](#ch02-git-basics)\n    -   [Démarrer un dépôt Git](#s_getting_a_repo)\n    -   [Enregistrer des modifications dans le\n        dépôt](#_enregistrer_des_modifications_dans_le_dépôt)\n    -   [Visualiser l’historique des validations](#s_viewing_history)\n    -   [Annuler des actions](#s_undoing)\n    -   [Travailler avec des dépôts distants](#s_remote_repos)\n    -   [Étiquetage](#s_git_tagging)\n    -   [Les alias Git](#s_git_aliases)\n    -   [Résumé](#_résumé_2)\n-   [Les branches avec Git](#ch03-git-branching)\n    -   [Les branches en bref](#s_git_branches_overview)\n    -   [Branches et fusions : les\n        bases](#_branches_et_fusions_les_bases)\n    -   [Gestion des branches](#s_branch_management)\n    -   [Travailler avec les branches](#_travailler_avec_les_branches)\n    -   [Branches de suivi à distance](#s_remote_branches)\n    -   [Rebaser (*Rebasing*)](#s_rebasing)\n    -   [Résumé](#_résumé_3)\n-   [Git sur le serveur](#ch04-git-server)\n    -   [Protocoles](#_protocoles)\n    -   [Installation de Git sur un serveur](#s_git_on_the_server)\n    -   [Génération des clés publiques SSH](#s_generate_ssh_key)\n    -   [Mise en place du serveur](#s_setting_up_server)\n    -   [Démon (*Daemon*) Git](#_démon_em_daemon_em_git)\n    -   [HTTP intelligent](#_http_intelligent_2)\n    -   [GitWeb](#_gitweb)\n    -   [GitLab](#_gitlab)\n    -   [Git hébergé](#_git_hébergé)\n    -   [Résumé](#_résumé_4)\n-   [Git distribué](#ch05-distributed-git)\n    -   [Développements distribués](#_développements_distribués)\n    -   [Contribution à un projet](#s_contributing_project)\n    -   [Maintenance d’un projet](#_maintenance_d_un_projet)\n    -   [Résumé](#_résumé_7)\n-   [GitHub](#ch06-github)\n    -   [Configuration et paramétrage d’un\n        compte](#_configuration_et_paramétrage_d_un_compte)\n    -   [Contribution à un projet](#_contribution_à_un_projet)\n    -   [Maintenance d’un projet](#s_maintaining_gh_project)\n    -   [Gestion d’un regroupement](#s_github_orgs)\n    -   [Écriture de scripts pour\n        GitHub](#_Écriture_de_scripts_pour_github)\n    -   [Résumé](#_résumé_8)\n-   [Utilitaires Git](#ch07-git-tools)\n    -   [Sélection des versions](#s_revision_selection)\n    -   [Indexation interactive](#s_interactive_staging)\n    -   [Remisage et nettoyage](#s_git_stashing)\n    -   [Signer votre travail](#s_signing)\n    -   [Recherche](#s_searching)\n    -   [Réécrire l’historique](#s_rewriting_history)\n    -   [Reset démystifié](#s_git_reset)\n    -   [Fusion avancée](#s_advanced_merging)\n    -   [Rerere](#s_sect_rerere)\n    -   [Déboguer avec Git](#_déboguer_avec_git)\n    -   [Sous-modules](#s_git_submodules)\n    -   [Empaquetage (*bundling*)](#s_bundling)\n    -   [Replace](#s_replace)\n    -   [Stockage des identifiants](#s_credential_caching)\n    -   [Résumé](#_résumé_10)\n-   [Personnalisation de Git](#ch08-customizing-git)\n    -   [Configuration de Git](#s_git_config)\n    -   [Attributs Git](#_attributs_git)\n    -   [Crochets Git](#s_git_hooks)\n    -   [Exemple de politique gérée par\n        Git](#s_an_example_git_enforced_policy)\n    -   [Résumé](#_résumé_11)\n-   [Git et les autres systèmes](#ch09-git-and-other-scms)\n    -   [Git comme client](#_git_comme_client)\n    -   [Migration vers Git](#s_migrating)\n    -   [Résumé](#_résumé_13)\n-   [Les tripes de Git](#ch10-git-internals)\n    -   [Plomberie et porcelaine](#s_plumbing_porcelain)\n    -   [Les objets de Git](#s_objects)\n    -   [Références Git](#s_git_refs)\n    -   [Fichiers groupés](#_fichiers_groupés)\n    -   [La *refspec*](#s_refspec)\n    -   [Les protocoles de transfert](#_les_protocoles_de_transfert)\n    -   [Maintenance et récupération de\n        données](#_maintenance_et_récupération_de_données)\n    -   [Les variables d’environnement](#_les_variables_d_environnement)\n    -   [Résumé](#_résumé_14)\n-   [Git dans d’autres environnements](#A-git-in-other-environments)\n    -   [Interfaces graphiques](#_interfaces_graphiques)\n    -   [Git dans Visual Studio](#_git_dans_visual_studio)\n    -   [Git dans Eclipse](#_git_dans_eclipse)\n    -   [Git dans Bash](#_git_dans_bash)\n    -   [Git dans Zsh](#_git_dans_zsh)\n    -   [Git dans Powershell](#s_git_powershell)\n    -   [Résumé](#_résumé_16)\n-   [Embarquer Git dans vos applications](#B-embedding-git)\n    -   [Git en ligne de commande](#_git_en_ligne_de_commande)\n    -   [Libgit2](#_libgit2)\n    -   [JGit](#_jgit)\n-   [Commandes Git](#C-git-commands)\n    -   [Installation et configuration](#_installation_et_configuration)\n    -   [Obtention et création des\n        projets](#_obtention_et_création_des_projets)\n    -   [Capture d’instantané basique](#_capture_d_instantané_basique)\n    -   [Création de branches et\n        fusion](#_création_de_branches_et_fusion)\n    -   [Partage et mise à jour de\n        projets](#_partage_et_mise_à_jour_de_projets)\n    -   [Inspection et comparaison](#_inspection_et_comparaison)\n    -   [Débogage](#_débogage_2)\n    -   [Patchs](#_patchs)\n    -   [Courriel](#_courriel)\n    -   [Systèmes externes](#_systèmes_externes)\n    -   [Administration](#_administration_2)\n    -   [Commandes de plomberie](#_commandes_de_plomberie)\n-   [Index](#_index)\n--\u003e\n\n## Licence\n\n\nCe travail est sous licence Creative Commons\nAttribution-NonCommercial-ShareAlike 3.0 Unported License. Pour voir une\ncopie de cette licence, visitez\n\u003ca href=\"http://creativecommons.org/licenses/by-nc-sa/3.0/\" class=\"bare\"\u003ehttp://creativecommons.org/licenses/by-nc-sa/3.0/\u003c/a\u003e\nou envoyez une lettre à Creative Commons, 171 Second Street, Suite 300,\nSan Francisco, California, 94105, USA.\n\n## Préface par Scott Chacon\n\nBienvenue à la seconde édition de Pro Git. La première édition a été\npubliée depuis plus de quatre ans maintenant. Depuis lors, beaucoup de\nchoses ont changé et beaucoup de choses importantes non. Bien que la\nplupart des commandes et des concepts clés sont encore valables\naujourd’hui vu que l’équipe du cœur de Git est assez fantastique pour\ngarder la compatibilité ascendante, il y a eu quelques ajouts\nsignificatifs et des changements dans la communauté qui entoure Git. La\nseconde édition de ce livre est faite pour répondre à ces changements et\nmettre à jour le livre afin qu’il soit plus utile au nouvel utilisateur.\n\nQuand j’ai écrit la première édition, Git était encore un outil\nrelativement difficile à utiliser et n’avait pas percé chez les\ndéveloppeurs purs et durs. Il a commencé à gagner de la popularité dans\ncertaines communautés, mais n’avait atteint nulle part l’ubiquité qu’il\na aujourd’hui. Depuis, presque toutes les communautés open source l’ont\nadopté. Git a fait des progrès incroyables sur Windows, dans la\nmultiplication des interfaces utilisateur graphiques sur toutes les\nplateformes, dans le support IDE et dans l’utilisation commerciale. Le\nPro Git d’il y a quatre ans ne connaît rien de tout cela. Un des\nobjectifs principaux de cette nouvelle édition est d’aborder toutes ces\nnouvelles frontières au sein de la communauté Git.\n\nLa communauté Open Source utilisant Git a elle aussi massivement\naugmenté. Quand je me suis assis pour écrire pour la première fois le\nlivre il y a presque cinq ans de cela (ça m’a pris du temps pour sortir\nla première version), je venais juste de commencer à travailler dans une\nentreprise peu connue développant un site web hébergeant Git appelée\nGitHub. Au moment de la publication, il y avait peut-être quelques\nmilliers de gens utilisant le site et que quatre d’entre nous\ntravaillant dessus. Pendant que j’écris cette introduction, GitHub est\nen train d’annoncer son dix-millionième projet hébergé, avec presque\ncinq millions de comptes développeur enregistrés et plus de deux-cent\ntrente employés. Que vous l’aimiez ou que vous le détestiez, GitHub a\ngrandement affecté une grande partie de la communauté Open Source d’une\nfaçon difficilement envisageable lorsque j’ai écrit la première édition.\n\nJ’ai écrit une petite section dans la version originale de Pro Git sur\nGitHub comme exemple de Git hébergé dont je n’ai jamais été très fier.\nJe n’ai pas beaucoup aimé écrire sur ce que je considérais comme étant\nessentiellement une ressource communautaire et aussi de parler de mon\nentreprise. Bien que je n’aime toujours pas ce conflit d’intérêts,\nl’importance de GitHub dans la communauté Git est inévitable. Au lieu\nd’un exemple d’hébergement Git, j’ai décidé de transformer cette partie\ndu livre en décrivant plus en détail ce que GitHub est et comment\nl’utiliser efficacement. Si vous êtes sur le point d’apprendre à\nutiliser Git, alors savoir utiliser GitHub vous aidera à prendre part à\nune immense communauté, ce qui est un atout, peu importe quel\nhébergement Git vous déciderez d’utiliser pour votre propre code.\n\nL’autre grand changement depuis la dernière publication a été le\ndéveloppement et l’expansion du protocole HTTP pour les transactions Git\nde réseau. La plupart des exemples dans le livre ont été changés en HTTP\ndepuis SSH parce que c’est beaucoup plus simple.\n\nIl a été stupéfiant de voir Git grandir au cours des dernières années en\npartant d’un système de contrôle de version relativement obscur jusqu’à\ndominer complètement le contrôle de version commercial et open source.\nJe suis très content que Pro Git ait aussi bien marché et qu’il ait été\nun des rares livres techniques du marché qui soit à la fois assez réussi\net complètement open source.\n\nJ’espère que vous apprécierez cette édition mise à jour de Pro Git.\n\n## Préface par Ben Straub\n\nLa première édition de ce livre constitue ce qui m’a fait accrocher à\nGit. Ce fut mon introduction à un style de fabrication du logiciel qui\nm’a semblé beaucoup plus naturelle que ce que j’avais connu auparavant.\nJ’avais travaillé comme développeur depuis quelques années déjà, mais\ncette bifurcation m’a mené sur un chemin bien plus intéressant que celui\nque j’avais déjà emprunté.\n\nÀ présent, plusieurs années plus tard, je suis un contributeur d’une\nimplantation majeure de Git, j’ai voyagé à travers le monde pour\nenseigner Git. Quand Scott m’a demandé si je serais intéressé pour\ntravailler sur la seconde édition, je n’y ai pas réfléchi à deux fois.\n\nÇa a été un grand plaisir et un privilège de travailler sur ce livre.\nJ’espère qu’il vous aidera autant qu’il m’a aidé.\n\n## Dédicaces\n\n\n*À ma femme, Becky, sans qui cette aventure n’aurait jamais commencé. —\nBen*\n\n*Cette édition est dédiée à mes filles. À ma femme Jessica qui m’a\nencouragé durant toutes ces années et à ma fille Joséphine, qui me\nsupportera quand je serai trop vieux pour comprendre ce qui se passe. —\nScott*\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgoffinet%2Fgit","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgoffinet%2Fgit","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgoffinet%2Fgit/lists"}