J'utilise Git 1.7.4.1. Je veux obtenir la dernière version de mon code à partir du référentiel, mais je reçois des erreurs ...
$ git pull
….
M selenium/ant/build.properties
….
M selenium/scripts/linux/get_latest_updates.sh
M selenium/scripts/windows/start-selenium.bat
Pull is not possible because you have unmerged files.
Please, fix them up in the work tree, and then use 'git add/rm <file>' as appropriate to mark resolution, or use 'git commit -a'.
J'ai supprimé les copies locales des fichiers dont l'outil se plaint, mais je reçois toujours les erreurs. Comment extraire la dernière version du référentiel distant? - Dave
git fetch
abord. Je n'obtenais pas de conflits, mais c'est ainsi que j'ai obtenu la dernière version du code.Réponses:
Si vous ne vous souciez pas des modifications locales (y compris les fichiers ou les sous-dépôts non suivis ou générés qui se trouvent juste ici) et souhaitez simplement une copie du dépôt:
Encore une fois, cela nuancera toutes les modifications que vous avez apportées localement, alors utilisez-les soigneusement. Pensez à
rm -Rf
faire cela.la source
git clean -f
ne fait pas vraiment partie de la réponse. Il supprimera les fichiers qui ne sont pas conservés dans le référentiel (par exemple, dans mon cas, les fichiers journaux); vous n'avez pas besoin de faire cela pour vous remettre augit pull
travail, c'est justegit reset --hard HEAD
assez.git clean -f
c'est important si vous voulez un vrai nettoyage de votre référentiel. C'est l'équivalent de faire un "Supprimer tout du dossier -> Obtenir la dernière version / Obtenir spécifique" dans TFS et dans mon cas, c'est ce que je voulais.Cas 1: ne vous souciez pas des changements locaux
Solution 1: obtenir le dernier code et réinitialiser le code
Solution 2: supprimez le dossier et clonez à nouveau: D
Cas 2: attention aux changements locaux
Solution 1: aucun conflit avec la nouvelle version en ligne
rapportera quelque chose comme:
Obtenez ensuite la dernière version
Solution 2: conflits avec la nouvelle version en ligne
rapportera quelque chose comme:
Engagez vos changements locaux
Essayez d'obtenir les modifications (échouera)
rapportera quelque chose comme:
Ouvrez le fichier de conflit et corrigez le conflit. Ensuite:
rapportera quelque chose comme:
Plus d'informations: Comment utiliser «git reset --hard HEAD» pour revenir à un commit précédent?
la source
Je soupçonne que ce qui s'est passé peut être que vous avez supprimé les fichiers que vous avez modifiés (parce que vous ne vous êtes pas souciés de ces changements) et maintenant git considère la suppression comme un changement.
Voici une approche qui déplace vos modifications hors de votre copie de travail et dans la "cachette" (récupérable s'il s'avère que vous en avez besoin à nouveau), afin que vous puissiez ensuite retirer les dernières modifications de l'amont.
Si jamais vous souhaitez récupérer vos fichiers (conflits potentiels avec les modifications en amont et tout), exécutez un
git stash apply
pour coller ces modifications au-dessus de votre code. De cette façon, vous avez une approche "annuler".la source
git stash pop
moins que vous ne vouliez un historique de vos cachettes gitVous devez d'abord fusionner vos fichiers. Faites un
git status
pour voir quels sont les fichiers qui doivent être fusionnés (cela signifie que vous devez d'abord résoudre les conflits). Une fois cela fait, faitesgit add file_merged
etpull
recommencez.la source
essayez ce code
la source
Si vous voulez simplement tout jeter dans votre dossier de travail (par exemple, les résultats d'une fusion échouée ou abandonnée) et revenir à un commit précédent, faites a
git reset --hard
.la source
Je comprends que vous souhaitez supprimer vos modifications locales et retirer le contenu de votre télécommande?
Si tout le reste échoue, et si vous avez (tout à fait compréhensible) peur de "réinitialiser", la chose la plus simple est simplement de cloner l'origine dans un nouveau répertoire et de jeter votre ancien.
la source
En exécutant cette commande, vous obtiendrez la balise la plus récente qui correspond généralement à la version de votre projet:
la source
Il me semble que vous rencontrez des problèmes avec core.autocrlf. core.autocrlf = true peut poser des problèmes comme ceux que vous décrivez sous Windows si des sauts de ligne CRLF ont été archivés dans le référentiel. Essayez de désactiver core.autocrlf pour le référentiel et effectuez une réinitialisation matérielle.
la source
Si vous utilisez Git GUI, commencez par récupérer puis fusionnez.
Récupérer via le menu à distance >> Récupérer >> Origine. Fusionner via le menu Fusionner >> Fusionner local.
La boîte de dialogue suivante apparaît.
Sélectionnez le bouton radio de la branche de suivi (également sélectionné par défaut), laissez la case jaune vide et appuyez sur fusion et cela devrait mettre à jour les fichiers.
J'avais déjà annulé certains changements locaux avant de faire ces étapes car je voulais les supprimer de toute façon, je n'ai donc pas à les éliminer via la fusion plus tard.
la source