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

Невозможно потянуть b/c "У вас неустановленные изменения", но статус говорит, что изменений нет

Я работаю с разработчиком здесь, который видит странную проблему, с которой я никогда не сталкивался раньше. Он работает над репозиторием и должен вытащить последние изменения от кого-то еще, прежде чем он сможет нажать. Все его изменения совершены.

$ git pull
Cannot pull with rebase: You have unstaged changes.
Please commit or stash them.

Что кажется достаточно разумным, пока...

$ git status
# On branch master
# Your branch and 'origin/master' have diverged,
# and have 3 and 1 different commit each, respectively.
#
nothing to commit (working directory clean)

Скажите что?

Я попробовал git reset --hard HEAD перед тем, как потянуть, но потянуть все еще не удается.

Только один парень видит это, и он на Mac (OSX 10.6.8). Есть идеи? Я собираюсь вытащить волосы.

4b9b3361

Ответ 1

Вместо

git pull

попробовать

git fetch
git rebase -p origin/master

Если это не работает, вы можете попробовать

git pull --no-rebase

Как проверить, почему это сообщение происходит

Удостоверьтесь, что вы на ветке, а не на отдельной голове. Rebasing не работает на отсоединенной головке.

Выполните следующие команды, результат не должен выводиться.

git update-index -q --ignore-submodules --refresh
git diff-files --ignore-submodules
git diff-index --cached --ignore-submodules HEAD --

Ответ 2

Работаете ли вы с локальной файловой системой или nfs?

У меня была точно такая же проблема, когда я работал над share nfs.

Я добавил параметр noatime в команду mount, и это помогло:

mount -t nfs -o noatime,... device dir

Ответ 3

Вы можете попробовать для $ git stash, а затем попробовать для git pull.

Ответ 4

для меня проблема была с файлами в защищенной папке

  1. только эта команда показала, что есть файлы без изменений

    git diff-files --ignore-submodules
    
  2. деконфигурировать git-crypt и перекодировать файлы в рабочем дереве

    git-crypt lock
    

Ответ 5

Похоже, что может произойти перебаза. Сначала попробуйте запустить git rebase --abort.

Более сильные методы очистки локальных объектов включают

  • Удалить все файлы в рабочем каталоге (за исключением директории .git, конечно)

  • git clean -d -x -f (-d: каталоги, -x: проигнорированные файлы, -f: force. Замените -f на -n для сухого прогона)

Затем следуйте инструкциям git reset --hard и git checkout.

Еще одна мысль - попробовать git reset --hard HEAD~N - i.e сбросить количество коммитов назад и надеяться, что притяжение будет работать и ускорить переадресацию локальных.