Le problème avec les systèmes de contrôle de version existants n'est pas tant leur complexité; c'est le fait qu'il existe une telle richesse d'informations qu'il peut être très difficile pour les débutants de voir la forêt pour les arbres (c'est-à-dire, de comprendre ce qu'ils font et n'ont pas besoin d'apprendre quand ils ne font que commencer) ).
Ce message va se concentrer sur gitet décrire comment le contrôler à partir d'Emacs à l'aide d'un module complémentaire appelé magit. Oui , gitc'est complexe, mais vous n'avez pas besoin d'apprendre beaucoup pour l'utiliser de manière productive aux fins que vous décrivez.
Je vais supposer que vous avez gitinstallé (si vous ne le faites pas, obtenez-le ici ) et que vous ne voulez pas quitter Emacs du tout.
L'installation magit
magitest un gitfrontal pour Emacs. Il est disponible auprès de MELPA et vous pouvez l'installer via:
M-x package-install RET magit RET
Si vous n'avez pas activé MELPA dans votre configuration, vous pouvez trouver des instructions sur la façon de le faire ici .
Configuration d'un référentiel
Disons que vous avez un dossier appelé ~/writingdans votre répertoire personnel qui contient un ou plusieurs documents que vous souhaitez mettre sous contrôle de version.
- Ouvrez le dossier dans Dired: C-x d
~/writing RET
- Ouvrez un shell: M-x
shell RET
- Tapez
git initet appuyez sur RET.
C'est ça. Vous avez maintenant un gitréférentiel. Il n'est pas nécessaire de "l'enregistrer" n'importe où. gitest un système de contrôle de version distribué ; il ne nécessite pas de serveur distant pour suivre les modifications.
Vérification de l'état de votre référentiel
- Revenez au tampon Dired qui répertorie les fichiers dans votre référentiel.
- Faites M-x
magit-status RET.
Vous pouvez penser au tampon qui apparaît comme votre «panneau de contrôle» pour travailler avec votre référentiel. Pour un nouveau référentiel, il ressemble à ceci:

Vous pouvez naviguer entre les différentes sections de ce tampon en utilisant n( magit-goto-next-section) et p( magit-goto-previous-section).
Vous pouvez actualiser le tampon en appuyant sur g( magit-refresh).
Notez que vous pouvez afficher le tampon d'état à partir de n'importe quel fichier ou répertoire appartenant au référentiel que vous avez configuré précédemment.
Ajout de fichiers
Comme vous pouvez le voir sur la capture d'écran, il y a trois fichiers dans le référentiel qui gitne sont pas actuellement suivis. Pour dire gitde commencer à suivre un fichier, vous devez le mettre en scène : avec le point sur le fichier que vous souhaitez ajouter, appuyez sur s. Le tampon d'état ressemblera alors à ceci:

S'engager
Après avoir transféré un ou plusieurs fichiers, vous pouvez les valider en appuyant sur c c. Cela fera apparaître un tampon qui ressemble à ceci:

Saisissez votre message de validation en haut, puis appuyez sur C-c C-cpour finaliser la validation. (Pour abandonner, appuyez sur C-c C-k.)
Le tampon d'état ressemblera alors à ceci:

Modifications par étapes
Si vous apportez des modifications à un fichier suivi, elles seront répertoriées dans une section distincte ("Modifications non mises en scène") dans le tampon d'état:

Pour revoir les modifications que vous avez apportées au fichier, accédez à la ligne qui dit Modified file-1.txtet appuyez sur TAB:

Pour mettre en scène ces changements, appuyez sur s:

Affichage des validations passées
Enfin, si vous souhaitez consulter les validations passées, vous pouvez appuyer sur l l(c'est deux L minuscules):

Comme d'habitude, vous pouvez parcourir le tampon fourni avec net p. Magit affichera les changements associés aux commits individuels répertoriés dans ce tampon dans une fenêtre séparée.
Sommaire
De la coque:
git init: Initialiser le gitréférentiel dans le répertoire courant
Depuis n'importe quel fichier ou répertoire associé à un gitréférentiel:
Depuis le tampon d'état:
C'est ça. :)
gitandmagit- github.com/magit/magit - car vous avez déjà joué un peu avec. Vous voudrez probablement vous familiariser avec les options de ligne de commande afin d'avoir une meilleure compréhension de ce quimagitse passe. Emacs n'est pas pour les non-codeurs, mais vous êtes sur la scène depuis assez longtemps pour ne pas en avoir peur - :) Vous pouvez également essayer de jouer avecgist: github.com/defunkt/gist.el