recherche

Maison  >  Questions et réponses  >  le corps du texte

Un problème étrange avec Git, aidez-moi à l'analyser ?

Par exemple, je crée un nouveau fichier appelé test.html dans l'espace de travail, puis git status :

git détecte ce fichier nouvellement ajouté et vous invite à l'ajouter temporairement via une zone de stockage supplémentaire.
Exécutez ce qui suit :
git reset --hard
Il semble que rien ne soit exécuté. Regardez le statut de git :

C'est toujours le. git status lorsque le fichier vient d'être ajouté. Astuce, le test.html nouvellement ajouté n'a pas été supprimé.

Maintenant, exécutez :
git add dist/test.html
Affichez le statut de git :

Placez le test.html nouvellement ajouté dans la zone de stockage temporaire et exécutez ce qui suit :
git reset --hard
En regardant à nouveau le statut de git, l'espace de travail et la zone de préparation sont tous propres et le test.html nouvellement ajouté a disparu.

Résumez la différence entre les deux opérations :
Créez également un nouveau fichier test.html
La première consiste à directement git reset --hard, créez un new Le fichier test.html est conservé dans l'espace de travail
La deuxième méthode consiste à ajouter d'abord ce nouveau fichier test.html, à l'ajouter à la zone de stockage temporaire, puis à git reset --hard, le fichier test.html dans l'espace de travail est également supprimé.
Si git reset --hard écrase l'espace de travail et la zone de transit avec le dernier enregistrement soumis, alors dans le premier cas, test.html doit être supprimé. Si git reset --hard ne traite pas les fichiers non suivis, dans le second cas, test.html ne sera pas supprimé de l'espace de travail.
Je suis déjà étourdi et j'attends que git réponde. Je pense que c'est probablement un bug de git.

我想大声告诉你我想大声告诉你2794 Il y a quelques jours573

répondre à tous(3)je répondrai

  • 高洛峰

    高洛峰2017-05-02 09:35:59

    git reset --hard consiste à réinitialiser le contenu de la zone de préparation et de l'espace de travail à la version indiquée par HEAD.
    Donc, dans le deuxième cas, le test.html de votre zone de préparation et de votre zone de travail a disparu.
    Quant au premier cas, si vous regardez attentivement la première image, elle montre que test.html est un fichier non suivi, ce qui signifie que le fichier n'a pas été suivi, donc bien sûr il ne sera pas supprimé.

    répondre
    0
  • 给我你的怀抱

    给我你的怀抱2017-05-02 09:35:59

    Stage Area/Index Area(缓存区)
    
    ====================================
    
    Working Area(工作区)
    
    ====================================
    
    Untracking Area(未追踪文件,即新建文件)

    git reset Cela affecte les zones Stage et Working (vous l'avez dit vous-même), donc ce n'est pas que Git a un bug, mais que vous ne comprenez pas les concepts de base.

    répondre
    0
  • 淡淡烟草味

    淡淡烟草味2017-05-02 09:35:59

    1. Pour annuler la zone de stockage temporaire, utilisez git reset N'essayez pas --hard
    2 Pour annuler l'espace de travail, utilisez git checkout

    .

    répondre
    0
  • Annulerrépondre