Не все эти решения работают для меня !! (по умолчанию установлено 32 МБ). Проблема в большинстве случаев max_allowed_packet
Я работаю на localhost и используя MAMP
.
Вот решения:
1. Если у вас нет my.ini
Добавить
--max_allowed_packet=168435456
К
...\MAMP\bin\startMysql.sh
2. Если у вас есть my.ini
В разделе
[mysqld]
Добавить
max_allowed_packet=100M
DONE!
Сообщение означает, что вам не разрешено выполнять немедленное нажатие.
У вашего удаленного репозитория наиболее вероятно denyNonFastforwards = true
в его конфигурации. Если вы измените это, git push --force
должно работать.
Чтобы изменить настройку, вам необходимо получить доступ к машине с удаленным репозиторием. Оттуда сделаем git config receive.denynonfastforwards false
.
Попробуйте использовать флаг -f
и поместив его после имени удаленной ветви.
git push origin master -f
Шаги по постоянному включению принудительного нажатия в следующем стиле
git push -f myrepo my-branch
Отредактируйте файл с именем «config» в папке, заканчивающийся на «.git» в удаленном репозитории
В выводе командной строки git из неудачного нажатия найдите строку, которая говорит что-то вроде:
error: failed to push some refs to 'ssh://user@some-remote-server.mycompany.com/srv/git/myrepo.git
, затем
ssh user@some-remote-server.mycompany.com
cd /srv/git/myrepo.git
vi config
Установите «denyNonFastforwards» в значение false
В «config» установите
[receive]
denyNonFastforwards = false
Теперь вы можете нажать с вашей локальной машины с помощью -f
git push -f myrepo my-branch
Вам не разрешено делать git-push, который не является быстрым.
Пульт дистанционного управления не допускает немедленного перехода вперед.
Ваш лучший вариант - git revert
все коммиты, которых не должно быть, и будьте осторожны в будущем.
git revert [commit]
создаст новую фиксацию, которая отменяет все, что было сделано [commit]
.
Я использую эту группу команд для сброса моего удаленного репо, это приведет к повторной инициализации вашего локального репо и повторной привязке к удаленному репо, а затем принудительно нажимает обновления.
Я так думаю, t работать в вашем случае, но может быть полезно для кого-то другого
перейти в исходную папку, а затем запустить команды: обратите внимание, что https://github.com/*.git
является вашей удаленной ссылкой репо
git init
git remote add origin https://github.com/*.git
git add .
git commit -m "initial commit"
git push origin master -f
git push --set-upstream origin master
**Note: this will clear all your git history on your master branch**
Проблема возникает, когда текущая ветка неправильно настроена для PULL. Сначала проверьте, правильно ли настроена ветка восходящего потока для использования с помощью - git remote show origin
. Вы можете найти его в разделе «Локальные ветви, настроенные для« git pull »:. Если нет, настройте его, используя:
git config branch.MYBRANCH.merge refs/heads/MYBRANCH
Дайте соответствующее имя ветви для владельца места - MYBRANCH