J'ai quelques fichiers qui n'ont pas été suivis dans git. J'ai apporté quelques modifications et j'ai voulu les valider, mais j'ai réalisé que j'avais oublié de vérifier d'abord les fichiers non modifiés. J'ai donc caché les fichiers, puis ajouté les versions non modifiées.
Ensuite, lorsque j'applique la cachette au référentiel, j'obtiens des conflits en raison des fichiers déjà ajoutés.
Comment puis-je appliquer le stash et forcer les versions du stash à être utilisées de préférence aux originaux dans le référentiel?
Merci
git rm
avant de le fairegit stash apply
.git
le traitera comme une petite modification.Réponses:
Utilisez
git checkout
au lieu degit stash apply
:Cela restaurera tous les fichiers du répertoire actuel dans leur version cachée.
S'il y a des changements dans d'autres fichiers du répertoire de travail qui doivent être conservés, voici une alternative moins lourde:
S'il y a des changements dans l'index, ou si la fusion touchera des fichiers avec des changements locaux, git refusera de fusionner. Les fichiers individuels peuvent être extraits de la cachette à l'aide de
ou interactivement avec
la source
git checkout stash -- .
Cette commande n'a littéralement rien fait lorsque je l'ai exécutée.git checkout stash -- .
dans le dossier parent le plus élevé qui contenait mes modifications, sinon il n'a appliqué que les modifications au dossier à partir duquel j'ai exécuté la commande..
spécifie le répertoire courant (vous pouvez le remplacer par un chemin différent au lieu de changer de répertoire). J'ai mis à jour ma réponse pour que ce soit plus clair.git stash show -p | git apply
puis
git stash drop
si vous souhaitez supprimer les éléments cachés.la source
Pour forcer l'
git stash pop
exécution de cette commandela source
TL; DR:
Version longue:
Vous obtenez cette erreur en raison des modifications non validées que vous souhaitez remplacer. Annulez ces modifications avec
git checkout HEAD
. Vous pouvez annuler les modifications apportées à un fichier spécifique avecgit checkout HEAD path/to/file
. Après avoir supprimé la cause du conflit, vous pouvez postuler comme d'habitude.la source