web-dev-qa-db-fra.com

Quelle est la différence entre Stop Tracking et Discard File dans git SourceTree

Je voulais savoir quelle est la différence entre jeter un fichier et arrêter de suivre un fichier dans git en utilisant source-tree. Si j'ai supprimé un fichier dans mon code mis à jour et que je souhaite que ce fichier soit également supprimé dans le référentiel, dois-je le marquer comme arrêt du suivi ou le supprimer lors du processus de validation

31
MistyD

Dans SourceTree, la sélection de "rejeter" sur un fichier annule simplement vos modifications locales; stop tracking le supprime du référentiel. Cependant, tant que vous avez supprimé le fichier sur votre lecteur local et que vous pouvez voir cette suppression dans la section "Fichiers intermédiaires" de SourceTree, il sera également supprimé dans le référentiel lorsque vous vous engagez.

28
David Deutsch

Le seul détail non couvert par la première réponse est que Stop Tracking ne supprime pas le fichier local. Il le supprime uniquement du contrôle de code source.

  1. Si vous souhaitez conserver le fichier localement (il s'agit peut-être d'un fichier .suo stockant les paramètres de Visual Studio qui, selon vous, ne devrait pas avoir été sous contrôle de code source) mais le supprimer du référentiel, vous devez utiliser Stop Tracking . Après cela, si vous voyez le fichier répertorié dans Fichiers non organisés , vous pouvez utiliser clic droit> Ignorer ... dans SourceTree pour mettre à jour votre fichier .gitignore pour ignorer le fichier à l'avenir.
  2. Si vous souhaitez supprimer votre fichier à la fois localement et dans le référentiel, vous devez utiliser Remove. (pour utiliser le terme SourceTree)
  3. Enfin, si vous souhaitez uniquement annuler vos modifications locales sans
    pour changer le dépôt, utilisez Discard.
55
Ken Lyon