Подтвердить что ты не робот

Почему я не могу переключаться между ветвями?

Я пытаюсь переключить ветки в 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
4b9b3361

Ответ 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

После этого просто переключите свою ветку. Это должно сделать трюк.