Git rebase вызывает конфликт с файлами .idea, которых больше не существует

Я нахожусь в своей собственной ветке, и при фиксации 5 или 6 коммитов назад я получаю эту проблему

First, rewinding head to replay your work on top of it...
Applying: commit x
Using index info to reconstruct a base tree...
Falling back to patching base and 3-way merge...
error: The following untracked working tree files would be overwritten by merge:
        .idea/.gitignore
        .idea/credit-policy-runs.iml
        .idea/dataSources.xml
        .idea/misc.xml
        .idea/modules.xml
        .idea/vcs.xml
Please move or remove them before you merge.
Aborting
error: Failed to merge in the changes.
Patch failed at 0001 commit x
hint: Use 'git am --show-current-patch' to see the failed patch

Resolve all conflicts manually, mark them as resolved with
"git add/rm <conflicted_files>", then run "git rebase --continue".
You can instead skip this commit: run "git rebase --skip".
To abort and get back to the state before "git rebase", run "git rebase --abort".


Когда я не могу выполнить git rm и git rebase --continue, у меня была аналогичная проблема некоторое время назад, но я думал, что решил ее, видимо, я просто оттолкнул ее.

Обновление: когда я удаляю vim .idea/.gitignore, есть файл, но когда я запускаю git rm .idea/.gitignore, я получаю фатальный результат: pathspec '.idea/.gitignore' не соответствует файлам

Обновление: когда я пытаюсь запустить перебазирование с помощью -Xtheirs, я получаю эти ошибки

CONFLICT (modify/delete): Runs.avpr deleted in origin/develop and modified in HEAD~63. Version HEAD~63 of Runs.avpr left in tree.
CONFLICT (modify/delete): .idea/misc.xml deleted in origin/develop and modified in HEAD~63. Version HEAD~63 of .idea/misc.xml left in tree at .idea/misc.xml~HEAD~63.

Resolve all conflicts manually, mark them as resolved with
"git add/rm <conflicted_files>", then run "git rebase --continue".
You can instead skip this commit: run "git rebase --skip".
To abort and get back to the state before "git rebase", run "git rebase --abort".

person sf8193    schedule 24.12.2019    source источник
comment
stackoverflow.com/questions/17404316/   -  person matt    schedule 24.12.2019
comment
это не решает проблему   -  person sf8193    schedule 24.12.2019
comment
Я думаю, что да. И кажется неправильным утверждать, что файлов там нет.   -  person matt    schedule 24.12.2019
comment
какие? Я не знаю, что еще вам сказать, когда я запускаю команды, я получаю такие результаты. Это не решает проблему, я знаю, потому что пробовал.   -  person sf8193    schedule 24.12.2019
comment
Являются ли коммиты, которые вы перебазируете, своими?   -  person max630    schedule 25.12.2019
comment
У вас работает среда IDE во время чтения?   -  person max630    schedule 25.12.2019
comment
@max630 да, они мои, и ide работает   -  person sf8193    schedule 25.12.2019


Ответы (4)


для тех, кто сталкивался с этим, я не смог найти решение и вместо этого скопировал весь каталог во временный каталог, создал новую ветку и переместил ее из временного каталога в новую ветку. Довольно жестоко и потеряло всю историю коммитов, но это единственное, что я смог понять.

person sf8193    schedule 09.01.2020

Из того, что я могу там прочитать, файлы не отслеживаются в вашей ветке (хорошо... файлы метаданных IDE не должны отслеживаться)... но в другой ветке файлы отслеживаются... ..что, вероятно, не правильно. Посмотрите, почему/когда файлы были добавлены в эту ветку и удалите их из ветки (существует множество рецептов удаления файлов из истории ветки), тогда этого не произойдет при попытке слияния.

Как удалить файл из репозитория Git ?

person eftshift0    schedule 24.12.2019
comment
Это была перебазировка. Скорее всего, коммиты, в которых есть файлы, являются собственными коммитами оператора. - person max630; 25.12.2019
comment
Ой! Так что это происходит до того, как git rebase выполнит проверку другой ветки... в любом случае проблема в истории другой ветки. - person eftshift0; 25.12.2019
comment
@eftshift0 коммиты мои, вы можете рассмотреть другой мастер ветки (потому что он есть), и он пуст - person sf8193; 25.12.2019
comment
Это оставляет меня в положении, когда я не уверен, как их удалить, потому что это просто более старый коммит, который по какой-то причине добавил эти файлы и впоследствии продолжал их игнорировать. - person sf8193; 25.12.2019

следуйте инструкциям, чтобы решить проблему

  1. возьмите файл резервной копии из вашего проекта
  2. мастер проверки git
  3. git branch -d "имя вашей ветки"
  4. мастер происхождения git pull
  5. git branch «имя вашей ветки», а затем git checkout «имя вашей ветки»
  6. скопируйте измененный файл из резервной копии и вставьте в папку проекта
  7. используйте для удаления git rm --cached -r .idea (для Windows: используйте «DEL /S /Q .idea» вместо «git rm --cached -r .idea»), если git rm не работает

    наконец нажми свой код

person Gaurav Singh    schedule 09.05.2020

git stash
git pull origin master --rebase

если возникнет конфликт, устраните конфликт и

git add .
git rebase --continue

Повторяйте, пока не получите перемотку сообщения...

git stash pop
person Binod Paneru    schedule 24.12.2019
comment
проблема в том, что я не могу исправить конфликт, и нет локальных изменений в тайнике - person sf8193; 24.12.2019