Ответ 1
UPDATE
Если вы удалили папку .git
(не отличная идея), вы можете создать новый клон репо и перенести свой материал на это и продолжить там. Что-то вроде этого
cd ..
git clone <remote-repo-url> new-repo
rm -rf new-repo/* // this will not remove new-repo/.git
cp -f <original-local-repo> new-repo
cd new-repo
Затем продолжайте, как показано ниже.
Обратите внимание, что лучше восстановить папку .git
. Создание нового репо потеряет всю локальную информацию репо, имевшуюся в исходном локальном репо, например, локальные ветки, которые никогда не были нажаты.
END UPDATE
Вы могли
git reset --soft HEAD^
git add -A .
git commit -m "rewriting history"
git push --force origin master
Это будет поддерживать предыдущую фиксацию (при сохранении рабочего дерева и индекса), зафиксировать ваши изменения и затем принудительно перенаправить перезаписанную историю на удаленный.
push --force
- опасный материал. Это будет беспокоить других, кто уже потянул, и считается очень грубым, но если никто больше не начал над ним работать, это не проблема.
Это то, что происходит:
--- A -- B master
^
|
origin/master
git push
--- A -- B master, origin/master
git reset HEAD^
git commit -am "rewriting"
--- A -- B origin/master
\
\
B' master
git push --force
--- A -- B
\
\
B' master, origin/master