Как мне получить репозиторий вверх и заставить его заменить master? У меня только одна ветвь на моем репо, которая является мастером, и я полностью перепутал ее, поэтому мне в основном нужно начинать с восходящего потока. Я думаю, что init выполнит эту работу, но есть ли более простой способ?
Git отказаться от всех изменений и вытащить из восходящего потока
Ответ 1
Здесь (по крайней мере) есть две вещи, которые вы можете сделать здесь: вы можете отложить удаленное репо или вы можете reset --hard
на общего предка, а затем выполнить извлечение, которое reset --hard
к последнему коммиту на удаленном мастере.,
Чтобы быть конкретным, вот простое продолжение оригинального ответа Nevik Rehnel:
git reset --hard origin/master
git pull origin master
ПРИМЕЧАНИЕ: использование git reset --hard
любые незафиксированные изменения, и может быть легко спутать себя с этой командой, если вы новичок в git, поэтому убедитесь, что у вас есть представление о том, что он собирается делать, прежде чем продолжить.
Ответ 2
а на главном сервере:
git reset --hard origin/master
затем выполните очистку с помощью git gc
(подробнее об этом на страницах руководства)
Обновление. Возможно, вам также понадобится git fetch origin
(или git fetch origin master
, если вы только хотите эту ветку); неважно, делаете ли вы это до или после reset. (Спасибо @eric-walker)
Ответ 3
Вы можете сделать это в одной команде:
git fetch --all && git reset --hard origin/master
Или в паре команд:
git fetch --all
git reset --hard origin/master
Заметьте, что вы потеряете ВСЕ ваши локальные изменения
Ответ 4
git reset <hash> # you need to know the last good hash, so you can remove all your local commits
git fetch upstream
git checkout master
git merge upstream/master
git push origin master -f
вуаля, теперь твой форк вернулся к тому же как вверх по течению.