Démarrer l'essai gratuit
Searching...
SoBrief
Français
EnglishEnglish
EspañolSpanish
简体中文Chinese
繁體中文Chinese (Traditional)
FrançaisFrench
DeutschGerman
日本語Japanese
PortuguêsPortuguese
ItalianoItalian
한국어Korean
РусскийRussian
NederlandsDutch
العربيةArabic
PolskiPolish
हिन्दीHindi
Tiếng ViệtVietnamese
SvenskaSwedish
ΕλληνικάGreek
TürkçeTurkish
ไทยThai
ČeštinaCzech
RomânăRomanian
MagyarHungarian
УкраїнськаUkrainian
Bahasa IndonesiaIndonesian
DanskDanish
SuomiFinnish
БългарскиBulgarian
עבריתHebrew
NorskNorwegian
HrvatskiCroatian
CatalàCatalan
SlovenčinaSlovak
LietuviųLithuanian
SlovenščinaSlovenian
СрпскиSerbian
EestiEstonian
LatviešuLatvian
فارسیPersian
മലയാളംMalayalam
தமிழ்Tamil
اردوUrdu
Pro Git
Essayez l'accès complet pendant 3 jours
Débloquez l'écoute et bien plus !
Continuer

Points clés

1. Git est un système de gestion de versions distribué basé sur des instantanés.

Git considère ses données davantage comme une série d’instantanés d’un mini-système de fichiers.

Approche par instantanés. Contrairement aux systèmes plus anciens qui suivent les modifications sous forme de deltas, Git enregistre l’état complet de votre projet à chaque commit. Lorsque vous sauvegardez l’état de votre projet, Git prend une photo de tous vos fichiers à ce moment précis et stocke une référence à cet instantané. Cette différence fondamentale rend Git extrêmement rapide et efficace, notamment pour des opérations comme la création de branches ou la comparaison de versions.

Nature distribuée. Avec Git, les clients ne récupèrent pas seulement la dernière version, mais dupliquent l’intégralité de l’historique du dépôt. Chaque clone constitue donc une sauvegarde complète, et la plupart des opérations s’effectuent localement, sans nécessiter de connexion réseau. Ce modèle distribué offre plusieurs avantages majeurs :

  • Le travail hors ligne est fluide.
  • Les opérations telles que la consultation de l’historique ou la comparaison de versions sont quasi instantanées.
  • La récupération après une panne du serveur est facilitée, car n’importe quel clone peut restaurer les données.

Conçu pour la rapidité et l’échelle. Git a été créé par Linus Torvalds pour gérer le noyau Linux, un projet immense et en évolution rapide. Sa conception privilégie la vitesse, la simplicité, un fort support du développement non linéaire (branches) et une gestion efficace des projets volumineux. Il convient ainsi à des projets de toutes tailles, des scripts personnels aux applications d’entreprise.

2. Maîtrisez les trois états fondamentaux : Modifié, Indexé et Validé.

Git distingue trois états principaux dans lesquels vos fichiers peuvent se trouver : modifié, indexé et validé.

Le flux de travail essentiel. Comprendre Git repose sur le cycle de vie de vos fichiers à travers ces trois états : Modifié (changements effectués mais non encore enregistrés dans Git), Indexé (changements sélectionnés pour le prochain commit), et Validé (changements enregistrés de façon sûre dans la base locale). Cela correspond à trois zones dans un projet Git : l’arbre de travail (vos fichiers), la zone d’indexation (l’index), et le répertoire Git (la base de données).

Le pouvoir de la zone d’indexation. La zone d’indexation est une fonctionnalité unique et puissante. Elle vous permet de choisir précisément quelles modifications de votre répertoire de travail seront incluses dans le prochain commit. Vous pouvez indexer des parties de fichiers ou des changements répartis sur plusieurs fichiers, créant ainsi des commits précis et cohérents. Ce contrôle granulaire aide à maintenir un historique clair et compréhensible.

Cycle de travail basique :

  • Modifiez les fichiers dans l’arbre de travail.
  • Indexez les changements souhaités avec git add.
  • Validez les changements indexés avec git commit.
  • Répétez.

Les fichiers peuvent être suivis (Git les connaît) ou non suivis (nouveaux fichiers non encore pris en compte). La commande git status est votre outil principal pour savoir dans quel état se trouvent vos fichiers.

3. Le système léger de branches de Git est une force majeure, permettant des flux de travail flexibles.

Une branche dans Git est simplement un pointeur léger et mobile vers un commit.

Les branches ne sont que des pointeurs. Contrairement à d’autres systèmes où la création de branches implique souvent la copie de fichiers, les branches Git sont extrêmement peu coûteuses. Créer une branche revient à créer un nouveau pointeur vers un commit existant. Changer de branche (git checkout ou git switch) est rapide car Git met à jour le pointeur HEAD et ajuste efficacement les fichiers de l’arbre de travail pour correspondre à l’instantané du commit ciblé.

Encourage la création fréquente de branches. Grâce à cette rapidité et simplicité, Git favorise des flux où les développeurs créent une branche pour chaque nouvelle fonctionnalité ou correction (branches thématiques). Cela isole le travail, facilite le changement de contexte et maintient la branche principale stable. Les branches peuvent être éphémères, fusionnées rapidement puis supprimées.

Avantages des branches :

  • Isoler le développement nouveau du code stable.
  • Expérimenter librement sans impacter le projet principal.
  • Faciliter la revue de code en comparant des branches.
  • Simplifier la collaboration sur des fonctionnalités spécifiques.

Le modèle de branches de Git est souvent considéré comme sa « fonctionnalité phare » grâce à sa rapidité et sa flexibilité, transformant profondément la gestion des développements parallèles.

4. Collaborez efficacement en gérant les dépôts distants et en partageant vos modifications.

Pour collaborer sur un projet Git, il est essentiel de savoir gérer vos dépôts distants.

Les dépôts distants sont des versions partagées. Un dépôt distant est une copie de votre projet hébergée ailleurs (internet, réseau). Il sert de point central pour la collaboration. Vous pouvez avoir plusieurs dépôts distants, chacun avec ses propres branches et tags. Cloner un dépôt configure automatiquement un dépôt distant par défaut nommé origin.

Récupération et intégration. Pour obtenir des données d’un dépôt distant, utilisez git fetch <remote>. Cette commande télécharge les données et met à jour les branches de suivi distant (comme origin/master) sans modifier votre travail local. git pull est un raccourci qui combine généralement git fetch suivi d’un git merge (ou git rebase si configuré), intégrant les changements distants dans votre branche courante.

Envoyer des modifications. Pour partager vos commits locaux, utilisez git push <remote> <branch>. Cela envoie votre branche et ses commits vers le dépôt distant spécifié. Vous devez avoir les droits d’écriture sur ce dépôt pour réussir. Si d’autres ont poussé des modifications depuis votre dernier pull, votre push peut être refusé, vous obligeant à récupérer et intégrer leurs changements d’abord.

5. Intégrez le travail via fusion ou rebasage, en comprenant leurs implications.

Dans Git, il existe deux principales façons d’intégrer des changements d’une branche à une autre : la fusion et le rebasage.

La fusion préserve l’historique. git merge intègre les changements d’une branche dans une autre en créant un nouveau commit de fusion. Ce commit a plusieurs parents, montrant explicitement où des lignes de développement divergentes ont été réunies. La fusion est généralement non destructive pour l’historique et constitue la méthode d’intégration par défaut. Les conflits sont signalés dans les fichiers pour une résolution manuelle.

Le rebasage réécrit l’historique. git rebase intègre les changements en déplaçant vos commits au sommet d’une autre branche. Il réapplique vos commits un par un sur la branche cible, créant de nouveaux objets commit avec des identifiants SHA-1 différents. Cela produit un historique plus linéaire et épuré, donnant l’impression que le travail s’est déroulé de manière séquentielle.

Différences clés :

  • Fusion : crée un nouveau commit, préserve la structure originale de l’historique.
  • Rebasage : réécrit les commits, crée un historique linéaire.

Prudence avec le rebasage. Ne rebasez jamais des commits déjà poussés sur un dépôt partagé et sur lesquels d’autres ont pu baser leur travail. Réécrire un historique partagé peut causer de graves problèmes aux collaborateurs, qui devront réintégrer les changements et risquent des doublons de commits.

6. Exploitez des outils puissants pour inspecter, rechercher et réécrire l’historique de votre projet.

Souvent, en travaillant avec Git, vous souhaiterez réviser l’historique local de vos commits.

Inspection de l’historique. git log est l’outil principal pour consulter l’historique des commits, avec de nombreuses options de formatage (--pretty), de filtrage (--author, --grep, -S) et de visualisation des branches (--graph). git show affiche les détails d’un commit ou objet spécifique. git diff compare les changements entre commits, la zone d’indexation et l’arbre de travail.

Recherche de contenu. git grep permet de chercher des chaînes ou motifs dans n’importe quelle version des fichiers du projet. git log -S (option « pioche ») trouve les commits ayant ajouté ou supprimé une chaîne spécifique. git log -L montre l’historique d’une fonction ou ligne de code précise.

Réécriture de l’historique. Git offre des outils pour modifier des commits passés avant de les partager. git commit --amend modifie le dernier commit. git rebase -i (rebasage interactif) permet de réordonner, éditer, fusionner ou supprimer des commits dans une série. git filter-branch (ou le plus récent git-filter-repo) peut réécrire de larges portions d’historique de manière scriptée, utile pour des tâches comme supprimer un fichier de tous les commits. Soyez prudent avec la réécriture d’historique partagé.

7. Personnalisez le comportement de Git avec des configurations et des hooks automatisés.

Comme beaucoup d’autres systèmes de gestion de versions, Git permet d’exécuter des scripts personnalisés lors d’actions importantes.

Niveaux de configuration. Les paramètres Git peuvent s’appliquer à trois niveaux : système (--system), utilisateur (--global) et dépôt (--local). Ces réglages contrôlent tout, de votre nom/email (user.name, user.email) et éditeur préféré (core.editor) à la gestion des espaces blancs (core.autocrlf, core.whitespace) et outils externes (merge.tool, diff.external).

Attributs Git. Les fichiers .gitattributes permettent des réglages spécifiques par chemin. Vous pouvez indiquer à Git comment gérer les fins de ligne (text), identifier les fichiers binaires (binary), utiliser des filtres de diff personnalisés (diff), ou même empêcher certains fichiers d’être archivés (export-ignore). Ces paramètres s’appliquent uniquement aux fichiers ou dossiers spécifiés.

Hooks automatisent les actions. Les hooks Git sont des scripts déclenchés par des événements précis. Les hooks côté client s’exécutent lors d’opérations locales (commit, fusion, rebasage), utiles pour imposer un format de message ou lancer des tests avant commit. Les hooks côté serveur s’activent lors d’opérations réseau (réception de push), idéaux pour appliquer des règles de projet comme le contrôle d’accès ou déclencher des builds d’intégration continue. Les hooks sont puissants mais doivent être distribués manuellement côté client.

8. La base d’objets Git est un système de fichiers adressable par contenu stockant blobs, arbres et commits.

Git est fondamentalement un système de fichiers adressable par contenu avec une interface utilisateur de gestion de versions construite par-dessus.

Structure de données centrale. Au cœur, Git est un simple magasin clé-valeur où le contenu est adressé par son hash SHA-1. Quatre types d’objets principaux existent :

  • Blob : stocke le contenu d’un fichier.
  • Tree : représente un instantané de répertoire, contenant des pointeurs vers des blobs et d’autres arbres, avec noms de fichiers et modes.
  • Commit : pointe vers un arbre racine, ses commits parents, les informations d’auteur/commiteur et un message.
  • Tag : pointe généralement vers un commit, avec informations sur le tagueur et un message (tags annotés).

Adressage par contenu. Lorsqu’un contenu est ajouté, Git calcule son hash SHA-1 et l’utilise comme clé pour stocker l’objet. Cela garantit l’intégrité des données ; toute modification change le hash. Les objets sont initialement stockés sous forme compressée dans .git/objects.

Graphe d’objets. Les commits forment un graphe orienté acyclique (DAG) via les pointeurs parents, représentant l’historique du projet. Les arbres et blobs forment les instantanés référencés par les commits. Comprendre cette structure sous-jacente éclaire de nombreuses opérations Git et permet des manipulations bas niveau avec des commandes « plomberie » comme git cat-file et git hash-object.

9. Les références (refs) fournissent des pointeurs lisibles vers des commits spécifiques.

Dans Git, ces noms simples s’appellent « références » ou « refs » ; vous trouverez les fichiers contenant ces valeurs SHA-1 dans le répertoire .git/refs.

Nommer les commits. Mémoriser des identifiants SHA-1 de 40 caractères est peu pratique. Les références offrent des noms conviviaux pour des commits précis. Ce sont des fichiers simples dans .git/refs contenant un SHA-1. Les types courants incluent les branches (refs/heads/), les tags (refs/tags/) et les branches de suivi distant (refs/remotes/).

Le pointeur HEAD. Le fichier HEAD est une référence spéciale, généralement un pointeur symbolique (ref:) vers la branche active. Lors d’un commit, Git crée un nouvel objet commit dont le parent est le commit pointé par HEAD, puis met à jour la référence HEAD vers ce nouveau commit. En état « HEAD détaché » (checkout d’un tag ou commit spécifique), HEAD contient directement un SHA-1.

Les refspecs définissent les correspondances. Les refspecs spécifient comment les références locales et distantes se correspondent, notamment lors des fetch et push. Leur format est [+]<src>:<dst>, mappant une référence source (<src>) vers une destination (<dst>). Cela permet un contrôle flexible des branches récupérées ou envoyées et de leur emplacement local ou distant.

10. La récupération des données est souvent possible même après des actions apparemment destructrices.

Si cela arrive, comment récupérer vos commits ?

Git ajoute des données. Presque toutes les opérations Git ajoutent des données à la base, rendant difficile la perte définitive d’un travail validé. Même des actions comme les resets durs ou la suppression forcée de branches ne suppriment pas immédiatement les objets commit sous-jacents. Elles suppriment seulement les références qui rendent ces commits facilement accessibles.

Le reflog conserve l’historique. Git maintient un « reflog » (.git/logs/) qui enregistre les déplacements récents de HEAD et des pointeurs de branches. Ce journal local suit les changements sur plusieurs mois. Vous pouvez utiliser git reflog ou git log -g pour consulter cet historique et retrouver le SHA-1 d’un commit apparemment perdu.

Trouver les objets orphelins. Si un commit n’est plus accessible par aucune référence (y compris le reflog), il devient un objet « orphelin ». git fsck --full peut analyser la base d’objets et lister ces objets orphelins, y compris les commits. Une fois le SHA-1 du commit perdu trouvé, vous pouvez le récupérer en créant une nouvelle branche ou un tag pointant dessus (git branch <nouvelle-branche> <sha-1>). Les objets non référencés pendant un certain temps sont finalement supprimés par la collecte des déchets (git gc).

Dernière mise à jour:

Report Issue

Résumé des avis

4.18 sur 5
Moyenne de 3 000+ évaluations de Goodreads et Amazon.

Pro Git reçoit des avis majoritairement positifs, les lecteurs saluant sa couverture complète des bases de Git ainsi que des sujets avancés. Beaucoup considèrent cet ouvrage comme une ressource incontournable, tant pour les débutants que pour les utilisateurs expérimentés. Ils apprécient la clarté des explications, les exemples concrets et les éclairages sur le fonctionnement interne de Git. Certains reprochent toutefois des problèmes de mise en page dans l’édition Kindle et des informations parfois dépassées dans certaines sections. Dans l’ensemble, les critiques recommandent ce livre comme un guide d’excellence pour comprendre Git, avec un éloge particulier pour les chapitres consacrés aux mécanismes internes et aux outils.

Your rating:
4.51
168 évaluations
Want to read the full book?

FAQ

What is "Pro Git" by Scott Chacon about?

  • Comprehensive Git resource: "Pro Git" by Scott Chacon (with Ben Straub) is a detailed, open-source guide to Git, the distributed version control system used by millions of developers.
  • Covers basics to internals: The book spans from fundamental version control concepts and Git installation to advanced topics like branching, merging, server setup, and Git internals.
  • Practical and modern focus: It emphasizes real-world workflows, collaboration models, and up-to-date practices, including GitHub integration and GUI/IDE support.
  • Accessible and authoritative: Freely available under a Creative Commons license, it is widely respected and regularly updated for modern Git usage.

Why should I read "Pro Git" by Scott Chacon?

  • Authoritative expertise: Scott Chacon is a key figure in the Git community, ensuring the book is both accurate and insightful for all levels of users.
  • Step-by-step learning: The book offers a structured approach, making it suitable for both beginners and experienced developers seeking to deepen their Git knowledge.
  • Open source and free: "Pro Git" is freely accessible, removing cost barriers and encouraging widespread learning.
  • Practical advice: It balances technical depth with actionable guidance, teaching not just commands but also the philosophy and best practices behind effective Git usage.

What are the key takeaways from "Pro Git" by Scott Chacon?

  • Snapshots over diffs: Git stores project history as snapshots, not just file differences, enabling fast and reliable operations.
  • Three main file states: Files in Git are either modified, staged, or committed, corresponding to the working directory, staging area, and repository.
  • Distributed collaboration: Every clone is a full repository, supporting offline work and robust collaboration models.
  • Workflow mastery: The book teaches essential workflows, from solo development to large-scale, multi-contributor projects.

How does "Pro Git" by Scott Chacon explain Git’s core concepts and architecture?

  • Content-addressable storage: Git uses SHA-1 hashes to identify objects (blobs, trees, commits, tags), ensuring data integrity and efficient storage.
  • Branching and merging: Branches are lightweight pointers to commits, making branching and merging fast and central to Git workflows.
  • Staging area (index): The staging area allows users to prepare commits precisely, supporting granular control over project history.
  • Distributed design: Git’s architecture enables local operations, reducing reliance on central servers and supporting flexible workflows.

How do I get started with Git according to "Pro Git" by Scott Chacon?

  • Installation guidance: The book provides step-by-step instructions for installing Git on Linux, macOS, and Windows, recommending version 2 or later.
  • Initial configuration: Users are guided to set their name, email, and preferred editor using git config, ensuring proper commit attribution.
  • Repository setup: Learn to initialize new repositories with git init or clone existing ones with git clone.
  • Basic workflow: The book introduces modifying files, staging changes with git add, and committing with git commit.

What are the essential Git workflows and commands covered in "Pro Git" by Scott Chacon?

  • Tracking and staging: Use git add to stage changes and git status to monitor file states, distinguishing between unstaged and staged modifications.
  • Committing and amending: Commit staged changes with git commit, and fix recent commits with git commit --amend.
  • Undoing changes: Unstage files with git reset HEAD <file>, discard changes with git restore or git checkout, and review differences with git diff.
  • Branching basics: Create and switch branches with git branch and git checkout or git switch.

How does "Pro Git" by Scott Chacon explain branching, merging, and conflict resolution?

  • Lightweight branching: Branches are simple pointers, making creation and switching nearly instantaneous.
  • Merging strategies: Merge branches with git merge, resolve conflicts manually or with tools like git mergetool, and understand fast-forward vs. merge commits.
  • Rebasing and cherry-picking: Rebase for linear history and cherry-pick to apply specific commits across branches, with cautions about rewriting shared history.
  • Conflict management: The book details how to identify, resolve, and even automate conflict resolution using tools like git rerere.

What collaboration workflows and project contribution methods does "Pro Git" by Scott Chacon recommend?

  • Centralized workflow: All contributors push and pull from a single central repository, similar to traditional VCS models.
  • Integration-manager workflow: Contributors fork repositories, push to their own copies, and submit pull requests for review and integration.
  • Dictator and lieutenants model: Large projects use hierarchical management, with maintainers overseeing sections and a lead integrator merging final changes.
  • GitHub best practices: The book covers forking, branching, pull requests, and code review processes for effective collaboration.

How does "Pro Git" by Scott Chacon cover advanced Git features like submodules, stashing, and history rewriting?

  • Submodules: Learn to include one Git repository inside another, manage dependencies, and handle common submodule pitfalls.
  • Stashing: Temporarily save work-in-progress changes with git stash to switch contexts without committing incomplete work.
  • Interactive staging: Use git add -p or git add -i to stage specific hunks or lines for precise commits.
  • History rewriting: Safely amend, squash, or reorder commits with git commit --amend and git rebase -i, and use git filter-branch or git-filter-repo for large-scale history edits.

What does "Pro Git" by Scott Chacon teach about Git internals and object storage?

  • Object types: Git stores data as blobs (file contents), trees (directories), commits (history), and tags, all identified by SHA-1 hashes.
  • Storage efficiency: Objects are compressed and packed into packfiles for space and performance optimization.
  • References and HEAD: The book explains how refs track branches, tags, and remotes, and how HEAD points to the current branch or commit.
  • Recovery tools: Use git reflog and git fsck to recover lost commits and maintain repository integrity.

How does "Pro Git" by Scott Chacon explain Git’s integration with other version control systems?

  • VCS bridges: Git can act as a client for Subversion, Mercurial, Bazaar, and Perforce, allowing seamless interaction with other systems.
  • Migration strategies: The book provides step-by-step guidance for migrating repositories, preserving history and author information.
  • Specialized tools: Tools like git svn, git-remote-hg, and git-p4 are covered for bridging and migrating between systems.
  • Practical examples: Real-world scenarios illustrate how to integrate or transition projects from other VCS to Git.

What customization and automation options does "Pro Git" by Scott Chacon offer for Git workflows?

  • Hooks for automation: Set up client-side and server-side hooks to enforce policies, automate tasks, and integrate with external systems.
  • Git attributes and filters: Use .gitattributes for content processing, keyword expansion, and export controls.
  • Configuration settings: Customize user info, editor, color output, credential helpers, and whitespace handling for a tailored experience.
  • External tools and IDEs: Integrate Git with graphical tools, IDEs, and shell environments for enhanced productivity.

What are the best practices and advanced tips from "Pro Git" by Scott Chacon for managing repositories?

  • Commit guidelines: Write clear, concise commit messages and avoid whitespace errors for maintainable history.
  • Efficient storage: Run git gc to optimize repository size and performance, and use refspecs for advanced remote interactions.
  • Recovery and safety: Use git reflog and git fsck to recover from mistakes and prevent data loss.
  • Project maintenance: Employ topic branches, code review, and merge strategies suited to your project's scale and style.

À propos de l'auteur

Scott Chacon est une figure reconnue au sein de la communauté Git, apprécié pour son expertise et ses contributions au développement ainsi qu’à la documentation de Git. En tant qu’auteur de Pro Git, il s’est imposé comme une référence incontournable du système de gestion de versions. Son style d’écriture se distingue par sa clarté et sa capacité à rendre accessibles des concepts complexes. Son engagement ne se limite pas à l’écriture : il a également participé à de nombreux projets et initiatives liés à Git. La profonde connaissance qu’il possède des mécanismes internes de Git et de ses applications pratiques transparaît dans son ouvrage, devenu une ressource de choix pour les développeurs souhaitant maîtriser Git.

Follow
Écouter
Now playing
Pro Git
0:00
-0:00
Now playing
Pro Git
0:00
-0:00
1x
Queue
Home
Swipe
Library
Get App
Try Full Access for 3 Days
Listen, bookmark, and more
Compare Features Free Pro
📖 Read Summaries
Read unlimited summaries. Free users get 3 per month
🎧 Listen to Summaries
Listen to unlimited summaries in 40 languages
❤️ Unlimited Bookmarks
Free users are limited to 4
📜 Unlimited History
Free users are limited to 4
📥 Unlimited Downloads
Free users are limited to 1
Risk-Free Timeline
Aujourd'hui : Accès immédiat
Écoutez les résumés complets de plus de 26 000 livres. Soit plus de 12 000 heures d'audio !
Jour 2 : Rappel d'essai
Nous vous enverrons une notification pour vous informer que votre essai se termine bientôt.
Jour 3 : Votre abonnement commence
Vous serez débité le Jun 15,
annulez à tout moment avant.
Consume 2.8× More Books
2.8× more books Listening Reading
Our users love us
600,000+ readers
Trustpilot Rating
TrustPilot
4.6 Excellent
This site is a total game-changer. I've been flying through book summaries like never before. Highly, highly recommend.
— Dave G
Worth my money and time, and really well made. I've never seen this quality of summaries on other websites. Very helpful!
— Em
Highly recommended!! Fantastic service. Perfect for those that want a little more than a teaser but not all the intricate details of a full audio book.
— Greg M
Save 62%
Yearly
$119.88 $44.99/year/yr
$3.75/mo
Monthly
$9.99/mo
Start a 3-Day Free Trial
3 days free, then $44.99/year. Cancel anytime.
Unlock a world of fiction & nonfiction books
26,000+ books for the price of 2 books
Read any book in 10 minutes
Discover new books like Tinder
Request any book if it's not summarized
Read more books than anyone you know
#1 app for book lovers
Lifelike & immersive summaries
30-day money-back guarantee
Download summaries in EPUBs or PDFs
Cancel anytime in a few clicks
Scanner
Find a barcode to scan

We have a special gift for you
Open
38% OFF
DISCOUNT FOR YOU
$79.99
$49.99/year
only $4.16 per month
Continue
2 taps to start, super easy to cancel
Settings
General
Widget
Loading...
We have a special gift for you
Open
38% OFF
DISCOUNT FOR YOU
$79.99
$49.99/year
only $4.16 per month
Continue
2 taps to start, super easy to cancel