Git pull не работает, теперь десятки неотслеживаемых файлов - PullRequest
1 голос
/ 07 февраля 2012

Иногда, когда выгрузка завершается неудачей, и я получаю десятки неотслеживаемых файлов. Эти файлы, по-видимому, являются всеми файлами, измененными после последнего извлечения. например:

$:/var/django/freshplum$ sudo git pull
Updating acb962a..eaf8c43
error: Your local changes to 'plum/api/resources/product.py' would be overwritten by merge.  Aborting.
Please, commit your changes or stash them before you can merge.


$:/var/django/freshplum$ git status
# On branch master
# Your branch is behind 'origin/master' by 140 commits, and can be fast-forwarded.
#
# Changed but not updated:
#   (use "git add/rm <file>..." to update what will be committed)
#   (use "git checkout -- <file>..." to discard changes in working directory)
#
#   deleted:    plum/api/resources/feed.py
... dozens of files ...
#   modified:   plum/www/views.py
#
# Untracked files:
#   (use "git add <file>..." to include in what will be committed)
#
#   plum/bacon/tests/models/segment.py
... dozens of files ...
#   plum/www/templates/www/internship.html
no changes added to commit (use "git add" and/or "git commit -a")

Я могу решить эту проблему с помощью:

git reset --hard HEAD
git clean -f -d
git pull

Как лучше всего разрешить эту ситуацию?

Ответы [ 3 ]

0 голосов
/ 29 января 2014

Попробуйте сначала по порядку:

git add --all (or specific files)
git commit -a (or specific)
git pull
git push origin master (or your branch)

Затем, если у вас нет запроса, попробуйте те же строки, которые вы публикуете (git clean или reset).

Наконец, если у вас есть конфликтудали их.

0 голосов
/ 18 октября 2018

Еще один способ сделать это, хотя и не обязательно лучше: делайте то, что говорит вам git.

Копирование возвращает грязное состояние вашего рабочего каталога - то есть, ваши изменения отслеживаютсяфайлы и поэтапные изменения - и сохраняет их в стеке незавершенных изменений, которые можно повторно применить в любое время.
- Git - Stashing

git pull не удалось, у вас есть много неотслеживаемых файлов, которые были «извлечены», но затем извлечение было прервано, и файлы остались.Теперь:

git add -A        # stage all files so they are now stashable
git stash         # stash them - the working dir is now clean
git pull          # pull
git stash drop    # forget the stashed changes. Alternatively: git stash pop

Обратите внимание, что это также избавит от любых неотслеживаемых файлов, которые у вас были до извлечения.


Есть второй способ, которым git рекомендует:

Пожалуйста, передайте свои изменения

git add -A
git commit -m "new commit"
git pull

Это имеет смысл, если выхотите сохранить локальные изменения и , чтобы получать новые коммиты с пульта.Затем вы можете столкнуться с конфликтами слияния, которые вы можете разрешить.

0 голосов
/ 07 февраля 2012

Ну, для начала вам, вероятно, следует тянуть чаще, чтобы у вас не было 140 коммитов для слияния.

Во-вторых, вы должны либо спрятать, либо зафиксировать свои локальные изменения, прежде чем пытаться вытащить, как написано в сообщении.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...