git add b.txt
rm b.txt
git commit -m '删除b.txt文件'
J'ai exécuté la troisième ligne commit
puis l'invite
On branch master
Changes not staged for commit:
deleted: b.txt
no changes added to commit
Alors si je git checkout -- b.txt
puis-je quand même le restaurer dans la zone de transit ? Pourquoi n'a-t-il pas été complètement supprimé ?
Un débutant. . . Écrivez quelques tutoriels. . . . .
En principe, git dispose de trois emplacements différents pour enregistrer les fichiers localement.
Arbre de travail : Ceci représente tous les fichiers et dossiers que vous pouvez voir
index : Ceci est en fait enregistré dans le dossier
.git
comme le référentiel suivant (le format de sauvegarde ne sera pas abordé ici)Dépôt : enregistre toutes les versions soumises.
Une fois que tout est validé, les dernières validations dans le WorkingTree, la zone d'index et le référentiel sont exactement les mêmes.
git add
signifie remplacer/mettre à jour les fichiers de la zone d'index par les fichiers du WorkingTree. Par conséquent, aprèsgit add b.txt
, le fichier b.txt dans l'index est mis à jour avec leb.txt
actuellement enregistré.rm b.txt
n'est qu'une commande Linux, ce qui signifie supprimer des fichiers. Pour git, cela supprime simplementb.txt
dans le WorkingTree.git commit
signifie regrouper les fichiers dans un index et les placer dans le référentiel. Puisqueb.txt
est toujours dans la zone d'index à ce moment-là,git commit
mettra toujours à jourb.txt
vers le référentiel.Cela montre la différence entre le WorkingTree actuel et la zone d'index :
Le
b.txt
fichier a été supprimé du WorkingTree actuel, mais le fichier existe toujours dans l'index.Cette invite doit être considérée comme un avertissement, car
git commit
signifie regrouper le contenu de la zone d'index dans le référentiel. Cependant, comme il a été validé auparavant et qu'aucune nouvelle chose n'a été ajoutée, le contenu du. la zone d'index est la même que les dernières. Le commit est le même, git n'a pas besoin de le sauvegarder à nouveau, il affiche donc "Rien à valider"git rm
La signification de cette commande est de supprimer un certain fichier de la zone d'index et de WorkingTree, donc aprèsgit rm b.txt
il n'y aura plus deb.txt
dans l'index. C'est toutgit checkout <branch>
signifie mettre à jour le contenu du WorkingTree et de la zone d'index avec le dernier commit de la branche. Puisqu'elle est irréversible, cette commande donnera une invite si le contenu de ces deux endroits n'a pas été soumis au référentiel.git checkout -- filename
signifie remplacer un fichier dans WorkingTree par le contenu de la zone d'index.--
est facultatif, indiquant que tout ce qui suit ce paramètre est le nom du fichier. (Car parfois la branche/Tag peut avoir le même nom que le fichier)Une commande supplémentaire est incluse. . .
git status
Cela signifie montrer la différence entre WorkingTree et la zone d'index (la valeur par défaut est rouge), et la différence entre l'index et la dernière version soumise (la valeur par défaut est verte ? Vert foncé ?). De plus, il y aura des conseils sur la façon de se mettre à jour entre eux.essayez
git rm filename
Le questionneur doit d'abord savoir pourquoi git a besoin de l'opération d'ajout. Parce que git n'a que la ligne de commande au début, l'opération d'ajout est équivalente à l'opération de sélection de fichier sous l'interface graphique, donc les opérations d'ajout et de validation doivent être prises en compte. dans son ensemble (c'est-à-dire comme sélectionner le fichier sous l'interface graphique et le soumettre), il ne doit pas être séparé.
1.git add b.txt //Ajouter b.txt de l'espace de travail à la zone de préparation (stage)
2.rm b.txt //Supprimer b.txt dans l'espace de travail, mais non exécuté git rm b.txt supprime le fichier du référentiel
3. git commit -m 'Delete b.txt file' // Puisque git rm b.txt n'est pas exécuté, commit soumet uniquement le contenu en 1
--> ;Vous devez exécuter git rm b.txt entre 2 et 3 pour supprimer le fichier
Je voudrais vous rappeler que la modification des noms de fichiers et la suppression de fichiers dans git sont presque les mêmes. Comme mentionné ci-dessus, vous devez utiliser les commandes git rm et git mv pour fonctionner séparément. Il existe un livre appelé le guide faisant autorité. à git. Vous pouvez jeter un bon oeil
. Supprimer des fichiers :
Supprimer un fichier dans l'espace de travail, nom de fichier rm
Il existe deux situations :
La première situation : le fichier doit également être supprimé dans le référentiel.
nom du fichier git rm
git commit -m 'Description'
Deuxième cas : supprimer accidentellement le fichier
git checkout -- nom du fichier
Ajout d'un git rm de moins devant