Git
Mise en scène
Recherche…
Remarques
Il convient de noter que la mise en scène a peu à voir avec les «fichiers» eux-mêmes et tout ce qui concerne les modifications apportées à chaque fichier. Nous montons les fichiers qui contiennent des modifications et git suit les modifications en tant que modifications (même lorsque les modifications apportées à une validation sont effectuées sur plusieurs fichiers).
La distinction entre les fichiers et les commits peut sembler mineure, mais la compréhension de cette différence est fondamentale pour comprendre les fonctions essentielles telles que la sélection et la diffusion de cerises. (Voir la frustration dans les commentaires concernant la complexité d'une réponse acceptée qui propose un choix sélectif comme outil de gestion de fichiers .)
Quel est l'endroit idéal pour expliquer des concepts? Est-ce dans les remarques?
Concepts clés:
Un fichier est la métaphore la plus commune des deux dans la technologie de l'information. Les meilleures pratiques imposent qu'un nom de fichier ne change pas à mesure que son contenu change (avec quelques exceptions reconnues).
Un commit est une métaphore unique à la gestion du code source. Les validations sont des modifications liées à un effort spécifique, comme une correction de bogue. Les commits impliquent souvent plusieurs fichiers. Un seul correctif de bogue mineur peut impliquer des modifications des modèles et des CSS dans des fichiers uniques. À mesure que le changement est décrit, développé, documenté, examiné et déployé, les modifications apportées aux différents fichiers peuvent être annotées et traitées comme une seule unité. L'unité unique dans ce cas est la validation. Tout aussi important, se concentrer uniquement sur la validation lors d'une révision permet d'ignorer les lignes de code inchangées dans les différents fichiers affectés.
Mise en scène d'un seul fichier
Pour mettre en place un fichier pour commettre, exécutez
git add <filename>
Mise en place de toutes les modifications apportées aux fichiers
git add -A
git add .
Dans la version 2.x, git add .
mettra en scène toutes les modifications apportées aux fichiers du répertoire en cours et de tous ses sous-répertoires. Cependant, dans 1.x, il ne mettra en scène que des fichiers nouveaux et modifiés, pas des fichiers supprimés .
Utilisez git add -A
, ou sa commande équivalente git add --all
, pour mettre en place toutes les modifications apportées aux fichiers dans n'importe quelle version de git.
Stade fichiers supprimés
git rm filename
Pour supprimer le fichier de git sans le retirer du disque, utilisez l'indicateur --cached
git rm --cached filename
Dégager un fichier contenant des modifications
git reset <filePath>
Ajout interactif
git add -i
(ou --interactive
) vous donnera une interface interactive où vous pourrez éditer l'index, pour préparer ce que vous voulez avoir dans le prochain commit. Vous pouvez ajouter et supprimer des modifications à des fichiers entiers, ajouter des fichiers non suivis et supprimer le suivi des fichiers, mais également sélectionner la sous-section de modifications à insérer dans l'index, en sélectionnant des fragments de modifications à ajouter, . De nombreux outils de création graphique pour Git (comme par exemple git gui
) incluent une telle fonctionnalité; Cela peut être plus facile à utiliser que la version en ligne de commande.
C'est très utile (1) si vous avez des modifications empêchées dans le répertoire de travail que vous voulez mettre dans des commits séparés, et pas toutes dans un seul commit (2) si vous êtes en cours de rebase interactif et que vous voulez vous séparer gros commit.
$ git add -i
staged unstaged path
1: unchanged +4/-4 index.js
2: +1/-0 nothing package.json
*** Commands ***
1: status 2: update 3: revert 4: add untracked
5: patch 6: diff 7: quit 8: help
What now>
La moitié supérieure de cette sortie indique l’état actuel de l’index divisé en colonnes à l’étage ou non:
-
index.js
4 lignes àindex.js
et suppression de 4 lignes. Il n'est actuellement pas mis en scène, car l'état actuel indique "inchangé". Lorsque ce fichier est mis en scène, le bit+4/-4
sera transféré dans la colonne intermédiaire et la colonne non-stadonnée indiquera "rien". - Une ligne a été ajoutée à
package.json
et a été mise en scène. Il n'y a pas d'autres modifications car il a été mis en scène comme indiqué par la ligne "Nothing" sous la colonne non-staged.
La moitié inférieure montre ce que vous pouvez faire. Entrez un nombre (1-8) ou une lettre ( s
, u
, r
, a
, p
, d
, q
, h
).
status
indique une sortie identique à la partie supérieure de la sortie ci-dessus.
update
à update
vous permet d'apporter d'autres modifications aux commits par étapes avec une syntaxe supplémentaire.
revert
rétablira les informations de validation par étapes sur HEAD.
add untracked
vous permet d'ajouter des chemins de fichiers précédemment non suivis par le contrôle de version.
patch
permet de sélectionner un chemin parmi une sortie similaire à l' status
pour une analyse plus approfondie.
diff
affiche ce qui sera commis.
quit
quitte la commande.
help
présente une aide supplémentaire sur l'utilisation de cette commande.
Ajouter des modifications par morceau
Vous pouvez voir ce que des "morceaux" de travail seraient mis en scène pour une validation en utilisant l'indicateur de patch:
git add -p
ou
git add --patch
Cela ouvre une invite interactive qui vous permet de regarder les diffs et vous permet de décider si vous souhaitez les inclure ou non.
Stage this hunk [y,n,q,a,d,/,s,e,?]?
- y mettre en scène ce morceau pour le prochain commit
- n ne pas mettre en scène ce morceau pour le prochain commit
- q quitter; ne pas mettre en scène ce morceau ou l'un des autres mecs
- une scène ce morceau et tous les derniers mecs dans le fichier
- d ne pas mettre en scène ce morceau ou l'un des derniers morceaux du fichier
- g sélectionnez un morceau pour aller à
- / recherche d'un morceau correspondant à l'expression régulière donnée
- j laisse ce morceau indécis, vois le prochain morceau indécis
- J laisse ce morceau indécis, vois prochain morceau
- k laisser ce morceau indécis, voir le morceau précédent indécis
- K laisse ce morceau indécis, voir le morceau précédent
- s diviser le morceau actuel en plus petits mecs
- e modifier manuellement le morceau actuel
- ? aide à la copie
Cela facilite la capture des modifications que vous ne voulez pas commettre.
Vous pouvez également ouvrir cette page via git add --interactive
et en sélectionnant p
.
Afficher les modifications par étapes
Pour afficher les points d'accès mis en attente pour la validation:
git diff --cached