Quand dois-je utiliser rm, git rm, git rm -- cache, git ajouter

j'apprends le git, mais je suis confus par différentes façons de mettre en scène et de commettre des fichiers. Pour me faire à l'idée, j'utilise une métaphore des répertoires: répertoire de travail, répertoire de mise en scène, répertoire de propagation.

  • si je rm un fichier de mon répertoire de travail, il ne le supprime que de mon répertoire de travail. C'-ce exact?
  • si je git rm un fichier de mon répertoire de travail, il supprime tous les trois répertoires. - Il Correct?
  • si je git rm --cached un fichier, il est supprime le fichier de ma mise en scène et de commettre des répertoires, mais le laisser dans mon répertoire de travail?
  • si j'ai mis à jour, ajouté et supprimé des fichiers de mon répertoire, et faire git add . , puis git status montre les fichiers mis en scène qui ont été ajouté, supprimé ou mis à jour. Ce qui se passe quand je m'engage? Sont les fichiers supprimés supprimés du répertoire Commit? Si je roule de retour à ces fichiers supprimés réapparaîtront-ils plus tard?

toute aide pour mieux comprendre ces concepts serait appréciée-merci!

9
git
demandé sur Greg Bacon 2016-05-17 17:56:38

1 réponses

modifiez votre compréhension de la zone de transit (aussi connue sous le nom d'index ou cache) et de l'option --cached . La documentation pour git rm indique

--cached

utilisez cette option pour dégrafer et supprimer les chemins uniquement à partir de l'index. Les fichiers d'arbre de travail, modifiés ou non, seront laissés seuls.

qui suit votre liste donne

  • rm file - supprimer le fichier du répertoire de travail seulement
  • git rm - supprimer le fichier du répertoire de travail et de la zone de transit, mais ne fait pas encore partie de l'histoire (dépôt, "commit directory")
  • git rm --cached - retirer de la zone de rassemblement mais ni l'Annuaire de travail ni l'histoire
  • git add . en présence de modifications, de nouveaux fichiers et de fichiers supprimés - git enregistrera les modifications et de nouveaux fichiers non marqués dans la cache. ( git add se comporteront différemment avec certaines options.)

l'option --cached des différentes commandes git les fait fonctionner sur l'index ou au moins par rapport à l'index.

git add et git rm prendre les modifications à partir du répertoire de travail à l'index ou le cache. Pensez à ces commandes comme la construction de votre prochain commettre une pièce à la fois.

après que vous soyez satisfait de ce qu'il y a dans l'index, déplacez les changements de l'index vers le dépôt avec git commit .

la plupart du temps, ce que vous voulez est la séquence simple git rm file suivie de git commit pour arrêter de suivre fichier au point actuel de votre histoire.

18
répondu Greg Bacon 2016-05-17 15:18:48