Français

GIT — Git

GIT Un dépôt Git se parcourt comme un dossier : les fichiers changés, les branches, l’histoire.

Ouvrir un dépôt

Le bouton GIT de la barre saute au projet favori ; son clic droit donne la liste : les dépôts connus, « Commit », « Histoire… », les branches, « Stash… » et « Stashes », « Étiquettes… », « Dépôts distants ». Un dossier du disque qui n’est pas encore un dépôt y propose « Cloner ici ». Les projets s’ajoutent d’eux-mêmes en y entrant, et un projet dont le dossier a disparu s’oublie — sauf si c’est son disque qui manque, une clé débranchée ne faisant rien oublier.

L’état d’un dossier

Chaque ligne porte sa couleur : en conflit, non suivi, modifié, préparé, ignoré. Un fichier est décrit par git sur deux axes — l’index et la copie de travail — et une ligne n’a pas de quoi montrer les deux : c’est ce qu’il reste à faire qui décide de la couleur. Le fil d’Ariane dit la branche courante.

Préparer et committer

« Commit » ouvre la vue des changements : un fichier par ligne, la colonne Suivi disant ce que git en sait. On désigne les lignes comme partout ailleurs — clic, Ctrl+clic, Maj+clic —, on écrit le message en bas, et Committer part avec ce qui est sélectionné. Rien de sélectionné, rien ne part : le bouton le dit.

La pastille Non suivis, dans la barre de commit, masque ce que git ne suit pas : un dossier plein de fichiers jetables ne noie plus les deux qu’on veut committer, et Ctrl+A ne les emporte plus. Décochée, elle dit combien elle en cache.

La vue des changements d’un dépôt : trois fichiers, leur état de suivi, et la barre de commit en bas.
Les changements du dépôt, et la barre de commit : le message, ce qui est sélectionné, et le bouton.

Voir les différences

« Voir les différences » ouvre le diff bloc par bloc, entre la copie de travail, l’index (préparé) et un commit — avant et après y sont nommés. Un fichier binaire le dit plutôt que de montrer du bruit.

Les gestes

Les branches et l’histoire

Créer une branche, basculer dessus, fusionner — l’entrée porte le nom de la branche, et répond rien à fusionner : déjà à jour ou fusion interrompue : des fichiers sont en conflit. « Histoire… » liste les commits : leur empreinte courte, leur sujet, leur auteur, leur date. La gouttière de gauche dessine le graphe, chaque ligne sur la sienne, et une fusion pose son trait vers la colonne voisine. Un double-clic ouvre le détail d’un commit : son message entier et les fichiers qu’il a touchés.

L’histoire d’un dépôt : quatre commits, leur sujet, leur auteur, et le graphe des branches dans la gouttière.
L’histoire, son graphe dans la gouttière : deux branches parties d’une même racine, et la fusion qui les rejoint.

L’arbre des merge requests

Arbre des merge requests…, au menu du bouton GIT, dessine les MR ouvertes du projet GitLab que désigne le dépôt distant. Chacune se range sous la branche dont elle part, avec un simple retrait par étape, comme un sommaire : l’étape dit dans quel ordre les valider, et un clic sur une carte ouvre la MR dans le navigateur.

L’arbre des merge requests d’un dépôt : main, ses MR en retrait, et une chaîne de trois MR tirées l’une de l’autre
!31 est partie de !28, et !35 de !31 : chacune se range sous celle dont elle porte les commits, avec « après » et « vise main ». Le bouton de droite fait le checkout de la branche ; la coche marque main, où l’on est.

Échanger avec le dépôt distant

« Pull (tirer) » et « Push (pousser) », avec le nombre de commits en jeu à côté du libellé — le zéro ne s’écrit pas. Une branche qui n’existe pas encore en face part avec son amont. Les dépôts distants se déclarent et se retirent depuis le même menu. Quand le serveur demande de quoi s’authentifier, Meneaufile le demande à son tour plutôt que de rester bloqué sans rien dire.

Mettre de côté

« Stash… » range le travail en cours sans le committer, avec une description facultative ; « Stashes » — Travaux mis de côté — liste ce qui attend, et de là on reprend ou l’on jette. « Étiquettes… » en pose et en retire de même.

Qui a écrit cette ligne

« Annotations », dans le menu d’un fichier, attribue chaque ligne à son commit et à son auteur. C’est la question qu’on se pose devant une ligne surprenante, et une liste de commits n’y répond pas.

Les conflits

Un fichier en conflit s’ouvre sur ses versions : la version commune, la nôtre, la leur, et le résultat qu’on construit. « Tout prendre » verse un côté entier, « Résoudre » enregistre — et le fichier quitte la catégorie en conflit.

Cloner

Depuis un dossier : l’adresse (https://… ou git@hôte:org/depot.git), le nom du dossier à créer, et un historique complet ou superficiel — les N derniers commits.

Les bundles

Un fichier .bundle est un dépôt Git emballé dans un seul fichier : de quoi emporter un projet sur une clé, ou le passer à quelqu’un, sans serveur. Le double-clic dit ce qu’il porte — ses branches, ses étiquettes — et Cloner ici… en fait un dépôt ordinaire, à côté de lui, sans réseau. Dans un dépôt, Créer un bundle… au menu de GIT l’emballe tout entier dans le dossier de l’autre vue.

Si git manque

Meneaufile appelle le git du système. Absent ou hors du PATH, il le dit plutôt que d’échouer sans raison.

Manuel de Meneaufile, en français.