как восстановить репо после git fetch? - PullRequest
0 голосов
/ 22 июня 2011

После изменения исходного удаленного URL-адреса (он был перемещен) и выполнения git update я обнаружил, что у меня есть репо, в котором каждый коммит и ветвь дублируются (вплоть до момента моей последней выборки ранее).Однако gitk показывает одного общего начального предка («начало» репо).

Файл FETCH_HEAD содержит 24 записи.Есть ли какая-нибудь команда git, которая восстанавливает мое репо, как оно было до извлечения?

Небольшая подробная информация: мое локальное репо подается исключительно с одного пульта, а собственные ветви передаются на другой пульт.

Ответы [ 2 ]

1 голос
/ 22 июня 2011

Похоже, что при перемещении репо вся история была потеряна или изменена (различные хэши sha-1 означают, что git не знает об общих предках), так как я предполагаю, что вы имели в виду git pull, а не обновление git.

Если вам нечего терять с точки зрения какого-либо из файлов, или вы не внесли никаких изменений (лучше сначала сделать это в ветке и посмотреть, выполняет ли это то, что вы хотите), вы можете попробоватьследующее:

git checkout -b tmaster
git reset --hard origin/master

Теперь проверьте, все ли правильно, если это так, удалите ветку master и переименуйте tmaster в master.

Любойхотя ветки, которые вы сделали, будут по-прежнему ассоциироваться со старой историей, вам придется создавать новые ветви, и cherry-pick поочередно совершенные вами коммиты, которые являются изменениями поверх мастер-источника.


Сначала я бы тоже запустил

git remote update --prune
git fetch --all
0 голосов
/ 11 июля 2011

(долгое время в приоритетном проекте) - новая информация: сообщалось, что история нового репо URL была переписана намеренно. Я бы открыл новую тему с более подходящим названием.

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