web-dev-qa-db-fra.com

Problème de chemin non gergé Git

J'ai fusionné le chien de branche en animal. Lorsque je m'engage, j'obtiens ce qui suit:

Unmerged paths:
(use "git reset HEAD <file>..." to unstage)
(use "git add <file>..." to mark resolution
both deleted:       ../public/images/originals/dog.ai
added by them:      ../public/images/original_files/dog.ai

Pour faire une histoire courte, j'avais différents noms de répertoire et noms de fichier dans chaque branche. La branche animale a les changements que je veux.

Quand je vais réinitialiser la tête, ça ne marche pas. Et quand je vais prendre une autre action de git (supprimer, checkout, etc.), je reçois une erreur de chemin non trouvé.

Quelles commandes dois-je exécuter?

69
keruilin

Tout ce que vous devez faire est de:

# if the file in the right place isn't already checked in
git add <path to desired file>
# remove the "both deleted" file from the index
git rm --cached ../public/images/originals/dog.ai

git commit         # commit the merge
66
Cascabel

Une autre façon de traiter cette situation si vos fichiers sont déjà archivés et que vos fichiers ont été fusionnés (mais non validés, les conflits de fusion sont donc insérés dans le fichier) consiste à exécuter:

git reset

Ceci basculera sur HEAD et indiquera à git d’oublier tout conflit de fusion et de laisser le répertoire de travail tel quel. Ensuite, vous pouvez éditer les fichiers en question (recherchez les avis "Mise à jour en amont"). Une fois que vous avez traité les conflits, vous pouvez exécuter

git add -p

ce qui vous permettra de sélectionner de manière interactive les modifications que vous souhaitez ajouter à l'index. Une fois que l’indice semble bon (git diff --cached), vous pouvez commettre, puis

git reset --hard

détruire toutes les modifications indésirables dans votre répertoire de travail.

40
naught101