Способ "повторного создания" репозитория - программирование
Подтвердить что ты не робот

Способ "повторного создания" репозитория

Я сделал большой рефакторинг в своем проекте: я переименовал файлы, удалил, добавил... Кроме того, я добавил несколько папок в .gitignore. Тем не менее, я уже сделал фиксацию в удаленном репозитории перед рефакторингом.

Можно ли сделать git "reinit" для моего репозитория? Если нет, что мне делать?

Обновление

Я удалил папку .git, и теперь у меня есть ошибка

Подсказка

: обновления были отклонены, потому что подсказка вашей текущей ветки отстает от намека: ее удаленная копия. Слейте удаленные изменения (например, "git pull" ). Подсказка: перед повторным нажатием. Подсказка: подробности см. в разделе "Замечание о быстрых форвардах" в "git push -help".

Я не хочу объединять локальные изменения с удаленным репо, я просто хочу нажать там, что означает полностью заменить удаленный репозиторий на локальный.

4b9b3361

Ответ 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

Ответ 2

ленивым способом является просто добавить все новые файлы и изменения и удаления:

git add -A .

До тех пор, пока у вас нет конфликтов, это должно слиться в штраф.

Ответ 3

Ниже приведены шаги для повторного инициализации репозитория.

Сценарий: Я удалил папку локального проекта, которую я сделал ранее git init. После этого я хотел бы обновить существующий репозиторий git с новой папкой того же проекта. Затем я решил это, выполнив следующую процедуру.

Процедура

git init
git add --all
git commit -am "re-init"
git remote add origin https://github.com/{yourgit}/{yourproject}.git
git push --force origin master