Мне удалось создать небольшой беспорядок в моем локальном Git-хранилище. Я пытался исправить поврежденный коммит, используя следующие инструкции . Перед запуском «git commit --amend» (и после git rebase --interactive) я решил, что мои изменения были неправильными, и поэтому выполнил «git reset HEAD --hard». Не очень хорошая идея, говорю я вам.
Теперь интерактивный ребаз кажется «застрявшим». Git показывает текущую ветвь как (| REBASE-m). Каждая команда (cd .., ls, git rebase ...) внутри моего хранилища выдает следующую ошибку:
cat: .git / rebase-merge / head-name: нет такого файла или каталога
Вот как выглядит git rebase --abort:
$ git rebase --abort
cat: c:/_work/project/src/git/.git/rebase-merge/quiet: No such file or directory
cat: c:/_work/project/src/git/.git/rebase-merge/head-name: No such file or directory
cat: c:/_work/project/src/git/.git/rebase-merge/orig-head: No such file or directory
HEAD is now at 4c737fb Revert "Modified file names"
rm: cannot remove `c:/_work/project/src/git/.git/rebase-merge/done': Permission denied
rm: cannot remove directory `c:/_work/project/src/git/.git/rebase-merge': Directory
not empty
cat: .git/rebase-merge/head-name: No such file or directory
Вот результат git rebase --continue:
$ git rebase --continue
cat: c:/_work/project/src/git/.git/rebase-merge/prev_head: No such file or directory
cat: c:/_work/project/src/git/.git/rebase-merge/end: No such file or directory
cat: c:/_work/project/src/git/.git/rebase-merge/msgnum: No such file or directory
cat: c:/_work/project/src/git/.git/rebase-merge/onto: No such file or directory
cat: c:/_work/project/src/git/.git/rebase-merge/quiet: No such file or directory
prev_head must be defined
cat: .git/rebase-merge/head-name: No such file or directory
Любые идеи? Я хотел бы вернуть ситуацию обратно в состояние, в котором она была до того, как я начал свою продуманную операцию перебазирования.
Вот как git log --oneline показывает ситуацию:
4c737fb Revert "Modified file names"
247ac02 Modified file names
33141e6 Message modifications
10a4a04 Modified db script
И это нормально.
Я использую msysgit v1.7.0.2.
источник
git rebase --quit
работал для меняОтветы:
Похоже, Git пытался удалить
.git/rebase-merge
каталог, но не смог удалить его полностью. Вы пытались скопировать эту папку? Также скопируйте.git/rebase-apply
папку, если она есть.источник
git rebase --abort
(из stackoverflow.com/a/4757777/146044 ) сделала работу.git rebase --abort
не работал)git rebase --abort
он стер мои неустановленные изменения ... ошибка все-таки исчезлаgit rebase --abort
все-таки дал мне ошибки.git rebase --quit
работал на меня.Я застрял в этом. Я создал файл заголовка, а затем столкнулся с другой ошибкой, сообщив, что он не может найти файл, поэтому я создал этот файл. Затем я получил еще одну ошибку, говорящую о том, что не могу прочитать «.git / rebase-apply / into»: такого файла или каталога нет.
Поэтому я посмотрел документацию по git для перебазирования и нашел другую команду:
Это вернуло меня к моей ветке без изменений, и я мог начать заново, как новый.
источник
git rebase --quit
это было--quit
работал.--abort
не потому, что перебазировка была отменена на полпути$ git rebase --abort
Вывод:error: could not read '.git/rebase-apply/head-name': No such file or directory
наконец, это решение исправляет мою проблему:git rebase --quit
git rebase --quit
абсолютно спас меня. Симптомы те же, что и описанные, но мои появились после попытки сделатьgit pull --rebase
, что по какой-то причине не удалось. Обратите внимание, что я включил autostash (git version 2.27.0.windows.1) и одновременно запустил VS2019 (указывает на это хранилище) - подозреваю, что какая-то их комбинация испортила его.У меня была похожая проблема из-за процесса zombie vim.exe. Убить его в диспетчере задач, после чего
git rebase --abort
исправить это.источник
handle
команду sysinternals и увидел, что процесс (sh.exe) заблокировал файл. Используяpskill <pid>
исправил это для меня.Спасибо @Laura Slocum за ваш ответ
Я все испортил во время перебазирования и получил отдельную ГОЛОВКУ с
это помешало мне закончить перебазирование.
Кажется, что отсоединенная ГОЛОВА точно содержит мое правильное состояние ребазировки, поэтому я побежал
и после этого я проверил новую временную ветку, чтобы привязать ее к отделенной голове.
Сравнивая его с веткой, которую я хотел перебазировать, я вижу, что новая временная ветка находится именно в том состоянии, в котором я хотел достичь. Спасибо
источник
Была такая же проблема в Eclipse. Не удалось перебазировать => прервать Eclipse.
Выполнение git rebase --abort из Git Bash Работало для меня.
источник
В Windows, если вы не хотите или не можете перезагрузить компьютер, см. Ниже.
Установите Process Explorer: https://technet.microsoft.com/en-us/sysinternals/bb896653.aspx
В Process Explorer найдите> Файловый дескриптор или DLL ...
Введите имя файла, указанное в ошибке (для моей ошибки это было «git-rebase-todo», но в приведенном выше вопросе «done»).
Process Explorer выделит процесс, удерживающий блокировку файла (для меня это был «grep»).
Завершите процесс, и вы сможете прервать действие git стандартным способом.
источник
Создайте файл с таким именем:
и чем пользоваться
git rebase
источник
В моём случае так
git rebase --abort
иgit rebase --continue
кидалсяМне удалось решить эту проблему, вручную удалив:
.git\rebase-apply
каталог.источник
Я использую
git version 2.19.2.windows.1
.единственное, что сработало для меня, это удалить
.git/rebase-apply/
каталог и сделатьgit reset --hard
.источник
В моем случае это было потому, что я открыл журнал SmartGit в соответствующем проекте Git и Total Commander в соответствующем каталоге проекта. Когда я закрыл оба я смог перебазировать без проблем.
Чем больше я думаю об этом, тем больше я подозреваю, что Total Commander, т.е. Windows имеет блокировку открытого каталога, с которым git rebase пытался что-то сделать.
Дружеский совет: когда вы пытаетесь что-то исправить, всегда делайте одно изменение за раз. ;)
источник
Я перепробовал все вышеупомянутые шаги, но у меня ничего не получалось. Наконец, перезагрузка компьютера сработала для этой проблемы: D
источник
С SublimeText 3 в Windows проблема решается простым закрытием окон Sublime, используемых для интерактивной редакции.
источник
После того, как вы успешно завершили сброс X количества коммитов, последняя команда должна быть
git rebase --continue
. Это завершает процесс и выходит из режима ребазирования.источник
У меня такая же проблема. Я использовал Process Explorer, как было предложено в другом посте (я не могу найти этот пост), и выяснил, какой процесс заблокировал файл и убил его. затем выполните --continue или --abort в соответствии с потребностями
источник
В моем случае после тестирования всех этих вариантов и по- прежнему возникают проблемы , я попробовал
sudo git rebase --abort
и он сделал все этоисточник
попробовал все остальное, кроме перезагрузки, у меня получилось
rm -fr .git/REBASE_HEAD
источник
Если вы получаете состояние ниже и ребаз не работает,
Тогда сначала беги,
А затем восстановить предыдущее состояние из reflog,
С помощью,
источник
Я использую Git в затмении, и у меня была такая же проблема.
В конце концов я обнаружил, что пункт меню «Rebase ...» был временно преобразован в подменю.
Team-> Rebase -> Abort
Это сработало для меня.
источник