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
2.0
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:

  1. 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".
  2. 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


Modified text is an extract of the original Stack Overflow Documentation
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow