Как я могу Git клон Git: //foo.git СНОВА? - PullRequest
13 голосов
/ 08 августа 2009

я сделал 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. что такое правильная команда?

Ответы [ 5 ]

10 голосов
/ 08 августа 2009
git checkout . # revert your changes
git clean -xdf # delete untracked and ignored files
2 голосов
/ 08 августа 2009

Вы можете использовать «git checkout». или «git checkout HEAD -.», или даже «git reset --hard HEAD», чтобы вернуть рабочую область в известное состояние (в первом случае записать в индекс, в во втором и третьем случае зафиксировать в фиксации HEAD). .

Чтобы удалить неотслеживаемые файлы, которые вы не хотите хранить, вы можете использовать «git clean» (подробности см. В документации ).

Чтобы получить новые изменения из удаленного репозитория, из которого вы клонировали, используйте «git fetch» ​​(или эквивалентное «git remote update», после некоторой настройки) или «git pull» (чтобы получить и изменения слияния ).

2 голосов
/ 08 августа 2009

Чтобы отменить все ваши изменения, используйте:

git checkout .

Неотслеживаемые файлы (файлы, которые изначально не существовали в дереве, те, которые вы создали и не редактировали), однако, не будут удалены. Чтобы найти неотслеживаемые файлы, используйте:

git status

Затем удалите их вручную.

Кстати, если вы хотите сделать копию репо, вам не нужно клонировать исходное репо, вы можете просто клонировать то, что у вас уже есть на жестком диске. Выйди куда-нибудь за пределы foo и сделай:

git clone /path/to/foo
0 голосов
/ 19 ноября 2009

Если вы действительно облажаетесь:

git clean -df
git reset --hard HEAD
0 голосов
/ 09 августа 2009

Вы также всегда можете использовать

rm -rf *
git checkout master

Меньше команд, чтобы запомнить:)

...