Ответ 1
git checkout . # revert your changes
git clean -xdf # delete untracked and ignored files
Я сделал git clone git://foo.git cd foo ... редактировать файлы..
Теперь я хочу начать новый. Меня не волнуют какие-либо изменения, которые я уже сделал,
но я не хочу снова клонировать весь гигантский foo.git, просто теряю все свои изменения.
как я git clone git://foo.git второй раз, не получая
fatal: destination path 'foo' already exists and is not an empty directory.
какова правильная команда?
git checkout . # revert your changes
git clean -xdf # delete untracked and ignored files
Чтобы вернуть все ваши изменения, используйте:
git checkout .
Исправленные файлы (файлы, которые изначально не существовали в дереве, созданные вами и не отредактированные) не будут удалены. Чтобы найти неиспользуемые файлы, используйте:
git status
Затем удалите их вручную.
Кстати, если вы хотите сделать копию репо, вам не нужно клонировать исходное репо, вы можете просто клонировать тот, который у вас уже есть на вашем жестком диске. Перейдите куда-нибудь за пределы foo
и выполните:
git clone /path/to/foo
Вы можете использовать "git checkout". или "git check HEAD -.", или даже "git reset --hard HEAD" до reset вашей рабочей области в известное состояние (состояние, записанное в индексе в первом случае, в состояние, записанное в HEAD фиксируется во втором и третьем случаях).
Чтобы удалить ненужные файлы, которые вы не хотите использовать, вы можете использовать "git clean" (подробнее см. ).
Чтобы получить новые изменения из удаленного репозитория, с которого вы клонировали, используйте "git fetch" (или эквивалентное "git удаленное обновление" после некоторой настройки) или "git pull" (для извлечения и слияния изменений).
Если вы действительно испортили это:
git clean -df
git reset --hard HEAD
Вы также можете всегда использовать
rm -rf *
git checkout master
Меньше команд для запоминания:)