2013-03-26 2 views
2

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

Должен ли я просто клонировать его? Я не уверен.

+1

Просто клонируйте в другой каталог и удалите старый, когда вы уверены, что от него ничего не нужно. – Mat

+2

Удалите локальный и повторный клон. – meagar

ответ

3

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

git fetch --all 
git reset --hard origin/master 

Вы, вероятно, могли бы сделать это в любом порядке, тоже.

Если вы хотите, чтобы удалить все файлы, которые вы добавили, что не отслеживаются, сделать чистую тоже:

git clean -f 

Преимущество этого подхода перед клонированием в новый каталог является то, что вы по-прежнему сохраняют некоторые истории/reflog. Если вам абсолютно все равно, что данные, хотя, любой подход в порядке.

+0

Перед запуском 'git reset --hard';) убедитесь, что на ветке' master' (т. Е. 'Git checkout master') – Tuxdude

0

Только git pull --all должен получить новейшие материалы.

1

Я согласен с Matt's и meagar's предложениями, но чувствую, что я хотел бы добавить немного к ним на основе прошлого опыта с помощью команды rm в проектах Git.

Если вы абсолютно уверены, что не хотите хранить что-либо из своего каталога, содержащего репо, cd до уровня, расположенного над папкой, чтобы его можно было удалить с помощью git rm. Я обнаружил, что использование git rm просто аккуратно, чем использование простой команды bash rm. Из предыдущего inscidident, в котором я просто удалил файл в моем промежуточном каталоге ветвей, я узнал, что это отбросило всю ветку с дорожки только потому, что она не была зарегистрирована в записи diff, и если бы я попробовал git commit, она вывела бы «Отделение обновлено». Ложное положительное.

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

git rm -rf MyRepo

затем просто перепроверить, что я бы сделать, это просто cd MyRepo, очевидно, ожидая ошибки, потому что shoudln папки» т существует.

После этого приступайте к клонированию своей версии, размещенной на GitHub, в том же месте, что и раньше, или где бы вы ни находились, и делайте то, что вы обычно делаете.