Когда я бегу git reset --hard HEAD
, он должен восстановить исходную версию того, что вы вытащили, насколько я понимаю. К сожалению, он оставляет файлы без дела, поскольку git status
показывает большой список неотслеживаемых файлов.
Как вы говорите git «Просто верните его ТОЧНО, что было в последнем потоке, ни больше, ни меньше»?
git reset --hard
сбрасывает ваш индекс и возвращает отслеживаемые файлы обратно в состояние, в котором они находятся в HEAD. Он оставляет файлы без отслеживания в покое.Ответы:
Вы должны использовать,
git clean -f -d
чтобы избавиться от неотслеживаемых файлов и каталогов в вашей рабочей копии.Если вам нужно сбросить весь репозиторий на master, включая все подмодули git, запустите этот скрипт:
источник
-x
если вы хотите удалить ваши файлы .gitignored и вернуться в первоначальное состояние.-n
в тест будет удален в первую очередь. объединить их все в один аргумент:-dfn
git clean -qfdx
здесь. Удалить все и сделать это молча.-d -f
может быть decalred дважды-dff
за-d -f -f
это удалит все неотслеживаемые каталоги, в том числе защищенных неотслеживаемых каталогов.Если у вас есть файлы, которые вы все еще хотите сохранить:
git clean -di
сделает интерактивную чистку, которая позволяет вам удалять только те файлы / каталоги, которые вам больше не нужны.источник
или zsh предоставляет псевдоним gpristine:
Что действительно удобно.
Если вы работаете с разветвленным репо, убедитесь, что вы выбрали и сбросили из правильного репо / ветви, например:
источник
-x
подобным, если бы вы только что клонировали репо. Если это то, что вы хотите, это прекрасно. Если вы просто хотите удалить неотслеживаемые файлы, удаление-x
опции работает хорошо.gpristine
Пользовательский интерактивный подход:
-i для интерактивной
-f для принудительной
-d для директории
-x для игнорируемых файлов (добавьте при необходимости)
Примечание: Добавьте -n или --dry-run, чтобы просто проверить, что он будет делать.
источник
Вы можете использовать
git stash
. Вы должны указать--include-untracked
, в противном случае вы получите исходную проблему.Тогда просто бросьте последнюю запись в тайник
Для этого вы можете создать псевдоним удобного денди и назвать его,
git wipe
например:источник
Команда, которую вы ищете
git clean
источник
git-clean
Используется для удаления неотслеживаемых файлов в рабочем дереве. Ниже приведены некоторые параметры (вкратце), которые можно использовать сgit clean
командой.-d
использовать, когда путь не указан. Так что git recurse в неотслеживаемые каталоги удаляет их.-f/--force
Удалить вложенные неотслеживаемые файлы.-i/--interactive
Покажите, что будет сделано, и очистите файлы в интерактивном режиме.-n/--dry-run
Покажите, что будет, не удаляя ничего.-x
игнорировать файлыпример:
git clean -f -d
-> Удалить все неотслеживаемые файлы в текущем каталоге из любых подкаталогов.источник
Возможно, в какой-то момент вы сделали мягкий сброс, вы можете решить эту проблему, выполнив
источник