Почему я не могу переключаться между ветвями?
Я пытаюсь переключить ветки в git, но я получаю это сообщение об ошибке:
error: you need to resolve your current index first
Я использую git под 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
Ответы
Ответ 1
Попробуйте это, если вы не хотите, чтобы слияния, перечисленные в git status:
git reset --merge
Это сбрасывает индекс и обновляет файлы в рабочем дереве, которые отличаются между <commit>
и HEAD
, но сохраняет те, которые отличаются между индексом и рабочим деревом (то есть, которые имеют изменения, которые не были добавлены).
Если файл, который отличается между <commit>
и индексом, не изменен, изменения сбрасываются.
Подробнее об этом - https://www.techpurohit.com/list-some-useful-git-commands & Doc link - https://git-scm.com/docs/git-reset
Ответ 2
В результате git status
вы получите both modified
, если возникли конфликты, вызванные слиянием. git не позволяет вам изменять ветвь до тех пор, пока вы не разрешите эти конфликты. Если вы редактируете этот файл, вы должны увидеть в нем некоторые маркеры конфликтов - там руководство по разрешению этих конфликтов в руководстве git. (Так как kernel.org в настоящее время недоступен, вы можете найти это руководство здесь.
В качестве альтернативы, если вы считаете, что слияние было ошибкой, вы можете отменить его: git reset --merge
Ответ 3
Если вам не нравятся изменения, которые git говорит, выдающиеся, вы можете выполнить проверку силы.
git checkout -f {{insert your branch name here}}
Ответ 4
Я получил это сообщение при обновлении новых файлов с удаленного компьютера, и индекс вышел из строя. Попытка исправить индекс, но разрешение с помощью Xcode 4.5, GitHub.app(103) и GitX.app(0.7.1) не удалось. Итак, я сделал это:
git commit -a -m "your commit message here"
который работал в обход индекса git.
Два сообщения в блоге, которые помогли мне понять о Git и Xcode:
Рэй Вендерлих на Xcode 4.5 и Оливер Стил с 2008 года
Ответ 5
вы можете reset свою ветку с HEAD
git reset --hard branch_name
затем выберите ветки и удалите ветки, которые не удалены от локальных,
git fetch -p
Ответ 6
Вам необходимо зафиксировать или уничтожить любые несохраненные изменения, прежде чем переключать ветвь.
Git не позволит вам переключать ветвь, если это означает, что несохраненные изменения будут удалены.
Ответ 7
Так как файл изменен обоими, либо вам нужно добавить его
git add Whereami.xcodeproj/project.xcworkspace/xcuserdatauser.xcuserdatad/UserInterfaceState.xcuserstate
Или, если вы хотите игнорировать изменения yoyr, тогда выполните
git reset HEAD Whereami.xcodeproj/project.xcworkspace/xcuserdatauser.xcuserdatad/UserInterfaceState.xcuserstate
После этого просто переключите свою ветку. Это должно сделать трюк.