J'essaie de changer de branche dans git mais je reçois ce message d'erreur:
error: you need to resolve your current index first
J'utilise git sous xcode4
git status
# On branch DateCode
# Unmerged paths:
# (use "git reset HEAD <file>..." to unstage)
# (use "git add/rm <file>..." as appropriate to mark resolution)
#
# both modified: Whereami.xcodeproj/project.xcworkspace/xcuserdatauser.xcuserdatad/UserInterfaceState.xcuserstate
#
no changes added to commit (use "git add" and/or "git commit -a")
Frappuccinos-MacBook-Pro:whereami
Essayez ceci si vous ne voulez aucune des fusions listées dans le statut git:
git reset --merge
Ceci réinitialise l'index et met à jour les fichiers de l'arborescence de travail qui diffèrent entre <commit>
et HEAD
, mais conserve ceux qui sont différents entre l’index et l’arbre de travail (c’est-à-dire dont les modifications n’ont pas été ajoutées).
Si un fichier différent de <commit>
et que l'index a des modifications non staged - la réinitialisation est annulée.
Plus d'informations à ce sujet - https://www.techpurohit.com/list-some-useful-git-commands & Doc link - https://git-scm.com/docs/ git-reset
Vous vous retrouvez avec both modified
dans la sortie de git status
s'il y avait des conflits produits par une fusion. git ne vous laisse pas changer de branche tant que vous n'avez pas résolu ces conflits. Si vous éditez ce fichier, vous devriez y voir quelques marqueurs de conflit - il y a un guide pour la résolution de ces conflits dans le manuel de git . (Kernel.org étant en panne, vous pouvez trouver ce guide ici à la place.)
Sinon, si vous pensez que la fusion est une erreur, vous pouvez l'annuler avec: git reset --merge
Si vous ne vous souciez pas des changements qui, selon git, sont en suspens, vous pouvez effectuer une vérification forcée.
git checkout -f {{insert your branch name here}}
vous pouvez réinitialiser votre branche avec HEAD
git reset --hard branch_name
puis chercher des branches et supprimer des branches qui ne sont pas distantes de locales,
git fetch -p
J'ai reçu ce message lors de la mise à jour de nouveaux fichiers à partir de la télécommande et l'index s'est effondré. J'ai essayé de réparer l'index, mais la résolution via Xcode 4.5, GitHub.app (103) et GitX.app (0.7.1) a échoué. Alors j'ai fait ça:
git commit -a -m "your commit message here"
qui a fonctionné en contournant l'indice git.
Voici deux articles de blog qui m'ont aidé à comprendre Git et Xcode:
Comme le fichier est modifié par les deux, vous devez soit l’ajouter par
git add Whereami.xcodeproj/project.xcworkspace/xcuserdatauser.xcuserdatad/UserInterfaceState.xcuserstate
Ou si vous souhaitez ignorer vos modifications, faites alors
git reset HEAD Whereami.xcodeproj/project.xcworkspace/xcuserdatauser.xcuserdatad/UserInterfaceState.xcuserstate
Après cela, il suffit de changer de succursale. Cela devrait faire l'affaire.
Vous devez valider ou détruire les modifications non enregistrées avant de changer de branche.
Git ne vous laissera pas changer de branche si cela signifie que les modifications non enregistrées seraient supprimées.