1085 votes

Comment résoudre le message de git "Commit your changes or stash them before you can merge" ?

J'ai effectué quelques mises à jour sur ma machine locale, je les ai poussées vers un référentiel distant, et maintenant j'essaie de transférer les changements vers le serveur et j'obtiens le message suivant ;

error: Your local changes to the following files would be overwritten by merge:
wp-content/w3tc-config/master.php
Please, commit your changes or stash them before you can merge.

Alors j'ai couru,

git checkout -- wp-content/w3tc-config/master.php

et j'ai réessayé et j'obtiens le même message. Je suppose que w3tc a changé quelque chose dans le fichier de configuration du serveur. Je ne me soucie pas de savoir si la copie locale ou la copie distante va sur le serveur (je suppose que la copie distante est la meilleure), je veux juste pouvoir fusionner le reste de mes modifications (mises à jour de plugins).

Des idées ?

25 votes

Il s'agit d'une question plus explicite, avec plus de détails et une meilleure réponse. Je pense qu'il est utile de garder celle-ci. Oui, l'autre question a été techniquement posée en premier, mais la suppression de celle-ci rendrait plus difficile pour les gens de trouver les réponses qu'ils recherchent.

0voto

Imray Points 1492

Dans mon cas, j'ai sauvegardé puis supprimé le fichier dont Git se plaignait, je me suis engagé, puis j'ai pu enfin vérifier une autre branche.

J'ai ensuite remplacé le fichier, recopié son contenu et continué comme si de rien n'était.

0voto

Keith Turkowski Points 36

Cela est probablement dû à des problèmes de CRLF.

Voir : Pourquoi devrais-je utiliser core.autocrlf=true dans Git ?

Utilisez ceci pour tirer et forcer la mise à jour :

git pull origin master
git checkout origin/master -f

0voto

hong cai Points 47

J'ai essayé la première réponse : git stash avec le score le plus élevé mais le message d'erreur apparaissait toujours, et puis j'ai trouvé cet article pour commettre les changements au lieu de stash L'engagement réticent

et le message d'erreur a finalement disparu :

1 : git add .

2 : git commit -m "this is an additional commit"

3 : git checkout the-other-file-name

ensuite, cela a fonctionné. j'espère que cette réponse vous aidera :)

0voto

Bizz Points 1637

Si vous utilisez Extensions Git vous devriez être en mesure de trouver vos modifications locales dans le fichier Working directory comme indiqué ci-dessous :

enter image description here

Si vous ne voyez aucun changement, c'est probablement parce que vous êtes sur un mauvais sous-module. Vérifiez donc tous les éléments avec une icône de sous-marin comme indiqué ci-dessous :

enter image description here

Quand vous avez trouvé un changement non engagé :

Sélectionnez la ligne avec Working directory , naviguer vers Diff cliquez avec le bouton droit de la souris sur les lignes avec un crayon (ou + ou - ), choisissez Remise à zéro du premier commit ou de s'engager ou de cacher ou tout ce que vous voulez en faire.

0voto

Eugen Konkov Points 5218

Probablement

git --rebase --autostash

aiderait

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X