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 git
et décrire comment le contrôler à partir d'Emacs à l'aide d'un module complémentaire appelé magit
. Oui , git
c'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 git
installé (si vous ne le faites pas, obtenez-le ici ) et que vous ne voulez pas quitter Emacs du tout.
L'installation magit
magit
est un git
frontal 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é ~/writing
dans 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 init
et appuyez sur RET.
C'est ça. Vous avez maintenant un git
référentiel. Il n'est pas nécessaire de "l'enregistrer" n'importe où. git
est 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 git
ne sont pas actuellement suivis. Pour dire git
de 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.txt
et 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 git
référentiel dans le répertoire courant
Depuis n'importe quel fichier ou répertoire associé à un git
référentiel:
Depuis le tampon d'état:
C'est ça. :)
git
andmagit
- 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 quimagit
se 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