git rebase не продолжается после устранения конфликтов - PullRequest
4 голосов
/ 13 февраля 2012

Я запустил git rebase origin/[branch] на ветке, которая является результатом объединения нескольких локальных ветвей во время разработки. Как и ожидалось, я столкнулся с некоторыми конфликтами и начал их исправлять. Первые несколько были в порядке. Git перечислил файлы, я очистил их, сделал соответствующие git add [file] для каждого, а затем сделал git rebase --continue, и он пошел.

Но теперь я попал в патч, который конфликтовал и был очищен, но я не могу продолжить по какой-то причине. Я очистил файлы, и все они подготовлены, но когда я git rebase --continue получаю:

$ git rebase --continue
You must edit all merge conflicts and then
mark them as resolved using git add

Я точно знаю, что данный коммит удаляет файл, который позже был повторно добавлен и изменен. Но когда я git status все, что я вижу, это:

$ git status
# Not currently on any branch.
# Changes to be committed:
#   (use "git reset HEAD <file>..." to unstage)
#
# modified: [file 1]
# modified: [file 2]
# modified: [file 3]
#

Удаленный файл не отображается.

Так что нет файлов для изменения, но git настаивает на том, что мне все еще нужно сделать что-то еще, прежде чем я смогу продолжить свой путь.

Ответы [ 2 ]

4 голосов
/ 13 февраля 2012

Разобрался с этой проблемой и поставил ее здесь на случай, если кто-то еще столкнется с ней:

Я заметил, что файл, который, как мне показалось, был удален в этом коммите, все еще находился в файловой системе и отслеживался git still. Поэтому я сделал git rm [file] и получил следующее сообщение:

$ git rm [file one]
[file two]: needs merge
rm '[file one]'

Когда я проверял [file two], конечно, он все еще находился в конфликтном состоянии и его нужно было исправить. После исправления и постановки я смог git rebase --continue. Я до сих пор не уверен, почему удаленный файл не показывался как удаленный или почему этот файл не показывался как нуждающийся в исправлении при выполнении git status.

0 голосов
/ 10 января 2015

Вы можете попробовать git ls-files -u, чтобы получить список файлов, которые Git считает не объединенными.

...