Удаление истории Git в результате добавления неправильного удаленного репо - PullRequest
4 голосов
/ 20 мая 2011

Нужно немного помочь с Git, если это возможно. Я новичок в Git и пытаюсь научиться так терпеть меня;)

Короче говоря, у меня есть два удаленных репозитория на двух разных серверах. У меня был настроен один, но при добавлении второго я случайно добавил репо из существующего проекта.

Затем я извлек из этого второго неправильного репо и получил все коммиты. Я удалил этот некорректный удаленный репо, но коммиты все еще существуют в дереве: -S Вверху все мои подлинные коммиты, затем перерыв тогда все неправильные.

Можно ли в любом случае удалить все эти коммиты из моей истории коммитов, так как я бы хотел сохранить свое дерево как можно более чистым?

Любая помощь будет оценена по этому вопросу.

Заранее спасибо

Ответы [ 4 ]

1 голос
/ 20 мая 2011

Будет ли git reset --hard коммит перед неправильным пуллом?Если hash1 был коммитом до "перерыва", вы можете сделать git reset --hard hash1

Если под вершиной вы подразумеваете, что ваши коммиты были после этих неправильных коммитов или если эти коммиты разбросаны по вашей истории, я бы предложил git rebase -i и удалите коммиты из-за неправильной тяги.

0 голосов
/ 28 февраля 2018

Во-первых, удалите все локальные ветви, которые вы, возможно, извлекли с неправильного пульта с помощью git branch -d branchname (возможно, с -D, если он жалуется на то, что он не был объединен с главным, но используйте это с осторожностью).

Далее, после того, как вы удалили пульт, вам нужно будет удалить удаленные ветви из вашего репозитория с помощью git fetch --prune.

Наконец, вы можете использовать git gc для удаления оставшихся ссылок на потерянные объекты.

0 голосов
/ 20 мая 2011

Насколько я понимаю, вам нужно сделать что-то вроде этого:

git rebase -i HEAD~5

Это вызовет текстовый редактор, показывающий последние пять коммитов.Просто удалите ненужные из списка и сохраните.git обновит индекс, удалив ненужные коммиты.

0 голосов
/ 20 мая 2011

Вы бы просто сделали

git gc

после удаления пульта.

Если у вас были какие-либо локальные ссылки, указывающие на неправильные ветви, сначала удалите их.

Кроме того, обратите внимание, что ссылки сохраняются для безопасности при повторных журналах и в качестве висячих коммитов. Обычно они истекают в свое время, но если вы хотите, вы можете ускорить его:

git gc --aggressive --prune=tomorrow

Делайте это только в том случае, если вы уверены, что вам не нужно восстанавливать то, что вы случайно удалили

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...