Как убрать неотслеживаемые файлы git
Припрятывание и очистка
Операция stash берет изменённое состояние вашего рабочего каталога, то есть изменённые отслеживаемые файлы и проиндексированные изменения, и сохраняет их в хранилище незавершённых изменений, которые вы можете в любое время применить обратно.
Команда git stash save не исчезнет в ближайшее время, поэтому не беспокойтесь о её внезапной пропаже. Но вы можете начать переход на push для использования новой функциональности.
Припрятывание ваших наработок
Теперь вы хотите сменить ветку, но пока не хотите фиксировать ваши текущие наработки; поэтому вы припрячете эти изменения. Для того, чтобы припрятать изменение в выделенное для этого специальное хранилище, выполните git stash или git stash push :
Теперь вы можете увидеть, что рабочая копия не содержит изменений:
В данный момент вы можете легко переключать ветки и работать в любой; ваши изменения сохранены. Чтобы посмотреть список припрятанных изменений, вы можете использовать git stash list :
Как видите, Git восстановил в файлах изменения, которые вы отменили ранее, когда прятали свои наработки. В данном случае при применении отложенных наработок ваш рабочий каталог был без изменений, а вы пытались применить их в той же ветке, в которой вы их и сохранили; но отсутствие изменений в рабочем каталоге и применение их в той же ветке не являются необходимыми условиями для успешного восстановления припрятанных наработок. Вы можете припрятать изменения, находясь в одной ветке, а затем переключиться на другую и попробовать восстановить эти изменения. Также при восстановлении припрятанных наработок в вашем рабочем каталоге могут присутствовать изменённые и незафиксированные файлы — Git выдаст конфликты слияния, если не сможет восстановить какие-то наработки.
Необычное припрятывание
Создание ветки из припрятанных изменений
Это удобное сокращение для того, чтобы легко восстановить припрятанные изменения и поработать над ними в новой ветке.
Очистка рабочего каталога
Наконец, у вас может возникнуть желание не прятать некоторые из изменений или файлов в вашем рабочем каталоге, а просто избавиться от них. Команда git clean сделает это для вас.
Одной из распространённых причин для этого может быть удаление мусора, который был сгенерирован при слиянии или внешними утилитами, или удаление артефактов сборки в процессе её очистки.
Ниже выполнена команда очистки в интерактивном режиме.
Таким образом, вы можете просмотреть каждый файл индивидуально или указать шаблоны для удаления в интерактивном режиме.
Как удалить неотслеживаемые файлы в Git
Главное меню » Linux » Как удалить неотслеживаемые файлы в Git
Отслеживаемые файлы – это те, которые были добавлены и зафиксированы, и git знает о них. Отслеживаемые файлы могут быть не изменены, изменены или размещены. Все остальные файлы в рабочем каталоге не отслеживаются, и git не знает об этих файлах.
В этой статье объясняется, как удалить неотслеживаемые файлы в Git.
Удаление неотслеживаемых файлов
Команда, которая позволяет вам удалить неотслеживаемые файлы git clean.
Это всегда хорошая идея сделать резервную копию вашего хранилища, потому что после удаления файлы и внесенные в них изменения не могут быть восстановлены.
Вывод будет выглядеть примерно так:
Если вы уверены, что хотите продолжить и удалить неотслеживаемые файлы и каталоги, введите:
Команда напечатает все успешно удаленные файлы и каталоги:
Вывод покажет файлы и каталоги, которые нужно удалить, и спросит вас, что делать с этими файлами:
Выберите один из вариантов и нажмите Enter.
Если вы хотите ограничить операцию очистки указанными каталогами, передайте пути к каталогам, которые будут проверяться на наличие неотслеживаемых файлов, в качестве аргументов команды. Например, чтобы проверить файлы в каталоге src, вы должны выполнить:
Удаление проигнорированных файлов
Команда git clean также позволяет удалять игнорируемые файлы и каталоги.
Заключение
В этой статье мы показали, как удалять неотслеживаемые файлы и каталоги в Git. Не забывайте всегда выполнять команду всухую перед тем, как удалять файлы.
Если у вас есть отзывы, оставьте комментарий ниже.
Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.
Шпаргалка по Git. Решение основных проблем
Восстановление накопленных изменений
В том случае, если изменения, внесённые пользователем, находятся в режиме накопления, применить их к ветке можно с помощью команды git stash apply. Также можно запустить git diff — эта команда поможет выявить различия. Для того, чтобы затем избавиться от накопленных данных, нужно запустить команду:
Если существует более одного накопления, найти нужное можно с помощью команды:
git stash list затем можно применить его, воспользовавшись его индексом:
Необходимо учитывать, что отсчёт индексов ведётся от нуля.
Восстановление удалённого тега
В том случае, если необходимо восстановить случайно удалённый тег, начать можно с его поиска:
После того, как нужный тег найден, его следует восстановить:
Восстановление удалённого файла
Если вы случайно удалили файл, его можно быстро восстановить:
Если требуется восстановить файл из конкретной временной точки истории коммитов, следует узнать хеш нужного коммита и запустить команду:
Восстановление удалённой ветки
С помощью комманды git reflog можно узнать хеш (SHA1) последнего коммита в удалённой ветке. Скопируйте этот хеш и используйте в команде:
После этого восстановить удалённую ветку можно будет вот такой командой:
Изменение сообщения коммита перед его отправкой
Сообщение можно изменить и напрямую с помощью команды
Изменение сообщения коммита после его отправки
Предупреждение: подобная насильная перезапись может привести к потери коммитов из внешней ветки, если с ней давно не было синхронизации, соблюдайте осторожность.
Использование алиасов команд в командной строке
Устали каждый раз печатать git status? Этой команде можно присвоить простой алиас, который проще и быстрее вбивать в git.
— теперь нужно писать только git st
Можно пойти дальше и присвоить алиасы более сложным командам:
Теперь алиас git logme будет выводить все наши коммиты.
Коммит в неправильную ветку
Нужно переключиться на новую ветку, которую вы забыли предварительно создать:
А затем переключиться к оригинальной ветке:
. и «откатиться» до последнего коммита, который нужно сохранить.
Чтобы это сделать, можно воспользоваться командой git log и сохранить хеш (SHA1) последнего коммита, который нужно оставить.. Например, это a31a45c.
Предупреждение: Убедитесь в том, что никто не отправлял коммиты в оригинальную ветку во время выполнения вышеописанных процедур, в противном случае эти изменения будут потеряны!
Обновление конкретного подмодуля
Чтобы обновить конкретный подмодуль в репозитории, нужно добавить путь к подмодулю:
Откат к конкретному коммиту в истории
Если вас не очень беспокоят изменения в локальном репозитории, то можно «откатиться» к конкретному коммиту в истории с помощью команды:
Эта команда установит HEAD на конкретный коммит. Также можно воспользоваться хешем коммита.
Отмена коммита до публикации изменений
Если вы сделали коммит, который впоследствии понадобилось отредактировать или полностью стереть, поможет команда git reset.
Будьте осторожны используя второй вариант, поскольку изменения ваших локальных файлов будут потеряны.
Чтобы сохранить сообщение коммита, наберите: :
Отмена коммита после отправки его в master-репозиторий
Рассмотрим процедуру возврата одного или нескольких коммитов, которые нужно стереть из удалённой ветки. Обозначить конкретный коммит можно с помощью его хеша:
Отмена только коммита, который является вторым после последнего:
Простая отмена последнего коммита:
Отмена локальных изменений файлов
Простейшим способом избавиться от нежелательных изменений для файлов и папок является восстановление состояния последнего коммита. Сделать это можно с помощью специальной команды:
Кроме того, можно восстановить конкретный путь к файлу:
Отображение всех коммитов одного файла
Аргумент —follow позволяет вывести все изменения над файлом, даже если в процессе работы он был переименован.
Отображения числа коммитов от каждого участника
Хотите узнать, сколько коммитов сделал каждый участник команды?
Отобразить коммиты, содержащие удалённые файлы
Узнать, в каких коммитах содержатся удалённые файлы, можно с помощью команды:
Она покажет список коммитов, в которых удалялись файлы.
Отсортировать коммиты по автору
Чтобы вывести список коммитов, отфильтрованных по автору, следует воспользоваться следующей командой:
Очистка всех скрытых состояний
Очистить все скрытые состояния можно следующей командой:
Переименование локальной и удалённой ветки
Предложим, у вас есть ветка «fix-bug25», которую вы захотели переименовать в «hotfix-users». Прежде всего, нужно будет изменить локальную ветку:
А затем — удалённую ветку: переименовать её напрямую нельзя, поэтому нужно будет её удалить, и затем опубликовать заново уже с новым именем. Прежде чем приступать к этим процедурам, следует убедиться, что никто из членов команды не работает с этой веткой! Удаляем ветку: git push origin :fix-bug25
А теперь заново публикуем её с новым именем: git push origin hotfix-users
Переименование тега
Чтобы переименовать существующий тег:
Перестать отслеживать существующие файлы
Если вы хотите перестать отслеживать файлы, которые уже есть в репозитории, но при этом желаете сохранить его локально, осуществите коммит изменений и запустите команду:
Она удалит изменённые файлы из зоны подготовленных файлов (staging area). Затем нужно запустить команду:
и отправить изменения.
Подготовка удалённых файлов
Чтобы подготовить к коммиту файлы и папки, которые были удалены локально, можно использовать специальную команду:
Если требуется подготовить только используемый в данный момент путь, воспользуйтесь командой
Поиск конкретного сообщения во всех коммитах
Чтобы найти конкретный текст сообщения коммита, соответствующий регулярному выражению, нужно воспользоваться командой
Пометить конфликтующий файл, как разрешённый
Чтобы пометить один или несколько конфликтующих файлов, как разрешённые, чтобы их можно было нормально изменять, воспользуйтесь командой:
Затем можно запустить git commit, чтобы разрешить конфликты и опубликовать изменения.
Просмотр всех неотправленных коммитов
Чтобы просмотреть все коммиты, которые ещё не были отправлены в соответствующие ветки, воспользуйтесь следующей командой:
Кроме того, можно использовать:
Просмотр старой ревизии файла
Существует возможность просмотреть содержимое файла в конкретный момент времени в прошлом. Для этого нужно использовать команду:
Публикация локальной ветки для удалённого редактирования
Если вы создали локальную ветку, и хотите, чтобы другие пользователи могли с ней работать, воспользуйтесь командой:
Теперь они тоже смогут вносить изменения в эту ветку.
Сброс локальной ветки до состояния удалённой
В том случае, если отсутствуют изменения, которые необходимо сохранить, сбросить локальную ветку до состояния удалённой можно с помощью двух простых команд.
Прежде всего нужно получить свежие обновления из удалённой ветки:
А затем нужно сообщить git, что локальную ветку следует «откатить» до состояния удалённой:
Синхронизировать ветку с master-репозиторием
Чтобы синхронизировать последние изменения в репозитории master (или с любой другой веткой, с которой вы работали) необходимо «перебазировать» локальную ветку. Предположим, вы работаете над веткой foobar:
А затем осуществляете «перебазирование»:
После этого будут применены коммиты origin из master. После разрешения конфликтов процесс можно продолжить с помощью команды git rebase —continue. Теперь можно продолжать работу над своей веткой или осуществить её слияние (merge) с главным репозиторием.
Слияние локальных изменений с другой веткой
Это можно сделать прямо в процессе стандартного слияния (merge). Вам стоит сохранить историю слияний используя флаг —no-ff, что означает no fast forward.
Перейдите в ветку, в которую будут вливаться изменения, убедитесь в её актуальности и запустите процесс:
Затем появится сообщение о коммите merge X into Y branch, после чего вы можете смело запушить ваше слияние.>
Совмещение двух и более коммитов
Если есть необходимость в совмещении двух последних коммитов, можно использовать команду
После её ввода появятся инструкции по выбору коммитов. В том случае, если необходимо совместить все коммиты с первым старейшим коммитов, то в первой строке нужно написать pick, а для всех остальных коммитов изменить букву на f. Подробнее здесь
Совмещение коммитов по конкретной функции для добавления в ветку релиза
Если вы решите совместить и опубликовать коммиты, то возникнет новый коммит в ветке релиза, поэтому история ветки конкретной функции останется неизменной.
Ниже представлен пример того, как достичь подобного эффекта:
В конечном итоге останется только один коммит в ветке релиза, а история изменений в ветке разработки конкретной функции останется нетронутой.
Создание новой ветки с изменениями текущей
Часто возникает ситуация, при которой пользователи начинают изменять файлы в ветке, чтобы что-то исправить, и лишь позднее вспоминают, что предварительно не создали новую ветку. К счастью, есть способ сделать это уже в процессе:
Эта команда перенесёт файлы из текущей ветки в новую, которую потом уже можно «закоммитить».
Убрать файл из буфера
Чтобы убрать добавленный по ошибке файл из буфера, нужно воспользоваться простой командой:
Удаление внешней ветки
Если вы хотите удалить ветку, введите команду:
Удаление неотслеживаемых файлов и папок
Чтобы удалить неотслеживаемые файлы и папки из рабочей копии наберите следующую команду:
Чтобы в принципе удалить их:
Подсказка: чтобы увидеть, какие файлы являются лишними, перед их непосредственным удалением, наберите:
Удаление старых веток, стёртых из внешнего репозитория
Если ветка удалена из внешнего репозитория, её также можно стереть из локального репозитория с помощью команды
Она удалит старую ветку под названием название-удалённой-ветки, которая уже была стёрта из внешнего репозитория, но всё ещё доступна локально в remotes/название-удалённой-ветки.
Удаление файла из git с сохранением его локальной копии
Для того, чтобы удалить файл из git, но сохранить его локально нужно использовать следующую команду:
Без Гита и жизнь не та
Получите практику в Git на курсах HTML Academy. Мы расскажем всё, что знаем сами, чтобы вы прокачали навыки в веб-разработке.
Как удалить локальные (неотслеживаемые) файлы из текущего рабочего дерева Git
Как удалить ненужные локальные файлы из текущего рабочего дерева?
ОТВЕТЫ
Ответ 1
Согласно документации Git git clean
Удалить неотслеживаемые файлы из рабочего дерева
Обратите внимание на регистр различий в X для двух последних команд.
Снова смотрите git-clean документы для получения дополнительной информации.
параметры
Удалите только файлы, игнорируемые Git. Это может быть полезно для восстановления все с нуля, но сохраняйте созданные вручную файлы.
На самом деле ничего не удаляйте, просто покажите, что будет сделано.
Ответ 2
На самом деле ничего не удаляйте, просто покажите, что будет сделано.
Ответ 3
Я удивлен, что никто не упоминал об этом раньше:
Ответ 4
Ответ 5
Ответ 6
Простой способ удалить неотслеживаемые файлы
Ответ 7
РЕДАКТИРОВАТЬ: Также я нашел способ показать неотслеживаемый файл в тайнике (например, git show [email protected]<0>^3 ) fooobar.com/questions/507/.
Ответ 8
Это то, что я всегда использую:
Для очень большого проекта вы можете запустить его несколько раз.
Ответ 9
Ответ 10
Если необходимо удалить неподписанные файлы из определенного подкаталога,
И комбинированный способ удаления невоспроизводимых файлов/файлов и игнорируемых файлов.
Ответ 11
можно использовать все вышеперечисленные опции в комбинации как
проверить git руководство для получения дополнительной справки
Ответ 12
Удалите все лишние папки и файлы в этом репо + подмодули
Это приводит вас в то же состояние, что и свежий клон.
Удалите все дополнительные папки и файлы в этом репо, но не его подмодули
Удалить только лишние папки, но не файлы (например, папка сборки)
Удалите лишние папки + пропущенные файлы (но не новые файлы)
Если файл не был проигнорирован и еще не зарегистрирован, он остается. Обратите внимание на заглавную X.
Новый интерактивный режим
Ответ 13
ОК, удалить ненужные неотслеживаемые файлы и папки легко, используя git в командной строке, просто сделайте это так:
Дважды проверьте, прежде чем делать это, так как он будет удалять файлы и папки, не делая истории.
Если вы хотите удалить (каталоги) и файлы, вы можете удалить только неотслеживаемые каталоги и файлы, например:
Ответ 14
Лучше всего использовать: git clean
Ответ 15
Пользовательский интерактивный подход:
-i для интерактивных
-f для силы
-d для каталога
-x для игнорируемых файлов (добавьте, если требуется)
Примечание: Добавить -n или — сухим, чтобы просто проверить, что он будет делать.
Ответ 16
Ответ 17
Для меня только после работы:
Во всех остальных случаях я получал сообщение «Skipping Directory» для некоторых подкаталогов.
Ответ 18
Жизнеспособность для такой ситуации я только что придумал и попробовал (что прекрасно работает):
Осторожно! Обязательно скопировать любые необходимые изменения (даже в неискренные файлы) перед выполнением этого.
Ответ 19
Если вы просто хотите удалить файлы, перечисленные как не проверенные ‘git status’
Я предпочитаю это «git clean», потому что «git clean» удалит файлы игнорируется git, поэтому вашей следующей сборке придется перестроить все и вы также можете потерять настройки IDE.
Ответ 20
Чтобы узнать, что будет удалено до фактического удаления:
Он выведет что-то вроде:
Удалит sample.txt
Чтобы удалить все, перечисленные в выводе предыдущей команды:
Он выведет что-то вроде:
Удаление sample.txt
Ответ 21
Чтобы удалить неиспользуемые файлы, вы должны сначала использовать команду для просмотра файлов, на которые будет влиять очистка
Это покажет вам список файлов, которые будут удалены. Теперь, чтобы фактически удалить эти файлы, используйте следующую команду:
Ответ 22
Кто-то должен действительно упомянуть:
Ответ 23
Будьте осторожны при выполнении команды ` git clean`.
В качестве альтернативы
Если вы не на 100% уверены, что удаление вашей незавершенной работы безопасно, вы можете вместо этого использовать stashing
Он также очистит ваш каталог, но даст вам гибкость для извлечения файлов в любой момент времени с помощью stash с применить или поп. Затем в более позднем пункте вы можете очистить свой тайник, используя:
Ответ 24
Здесь я рассмотрел некоторые основы в своем блоге, git-intro-basic-команды
Ответ 25
ued Команда Удаление необработанных файлов из git docs git clean
Доступные параметры:
Объяснение:
1. -d
Показать, что будет сделано и очистить файлы в интерактивном режиме. Подробнее см. «Интерактивный режим».
На самом деле ничего не удаляйте, просто покажите, что будет сделано.
Будьте спокойны, только сообщайте об ошибках, но не удаляйте файлы.
Удалить только файлы, игнорируемые Git. Это может быть полезно для восстановления всего с нуля, но сохранить вручную созданные файлы.
Ответ 26
Ответ 27
Мы можем легко удалить локальные неотслеживаемые файлы из текущего рабочего дерева git, используя приведенные ниже комментарии git.
Пример:
Ссылки:
Ответ 28
Очистить git-репозиторий и все подмодули рекурсивно
Следующая команда рекурсивно очистит текущий репозиторий git и все его подмодули:
Ответ 29
oh-my-zsh с zsh предоставляет эти отличные псевдонимы через плагин git. Их также можно использовать в bash.
Ответ 30
удалит неотслеживаемые файлы из текущего git
когда вы хотите удалить каталоги и файлы, это приведет к удалению только неотслеживаемых каталогов и файлов
Как отбросить неустановленные изменения в Git?
Как отбросить изменения в моей рабочей копии, которые не находятся в индексе?
30 ответов
другой более быстрый способ:
после этого вы можете бросить эту заначку с git stash drop команда, если хотите.
для всех неустановленных файлов используйте:
для конкретного файла используйте:
обязательно включите период в конце.
кажется, что полное решение такое:
это проверяет текущий индекс для текущего каталога, отбрасывая все изменения в файлах из текущего каталога вниз.
или это, который проверяет все файлы из индекса, перезаписывая рабочие файлы дерева.
очищает рабочее дерево с помощью рекурсивного удаления файлов, которые не находятся под контролем версий, начиная с текущего каталога.
-d : удаление неотслеживаемых каталогов в дополнение к неотслеживаемым файлам
-f : Force (может быть не нужно в зависимости от clean.requireForce настройки)
Run git help clean посмотреть инструкцию
это позволяет выборочно возвращать куски.
поскольку ни один ответ не предлагает точную комбинацию опций, которую я использую, вот она:
это текст онлайн-справки для используемого git clean варианты:
Я действительно нашел эту статью полезной для объяснения, Когда использовать какую команду:http://www.szakmeister.net/blog/2011/oct/12/reverting-changes-git/
есть несколько различных случаев:
если вы поставили файл, используйте git reset. Reset изменяет индекс в соответствии с фиксацией.
взгляните на статья выше для дальнейших консультаций.
самый простой способ сделать это с помощью следующей команды:
в команде git скрытие неотслеженных файлов достигается с помощью:
Если вы не заинтересованы в сохранении неустановленных изменений (особенно если поэтапные изменения являются новыми файлами), я нашел это удобным:
при переключении ветвей продолжайте, даже если индекс или рабочее дерево отличаются от HEAD. Это используется, чтобы отбросить локальные изменения.
при проверке путей из индекса не завершайте работу с незаполненными записями; вместо этого незаполненные записи игнорируются.
вы можете использовать git stash-если что-то пойдет не так, вы все равно можете вернуться из тайника. Подобно некоторому другому ответу здесь, но этот также удаляет все неустановленные файлы, а также все неустановленные удаления:
если вы проверяете, что все в порядке, выбросьте заначку:
обновление
Я думаю, что есть еще 1 изменение (не знаю, почему это сработало для меня раньше):
Примечание: Если вы хотите сохранить файлы еще не отслеживаются, но не в GITIGNORE вы можете пропустить этот шаг, так как он будет стереть эти неотслеженные файлы, не найденные в удаленном репозитории (спасибо @XtrmJosh).
затем я сброшен в origin
это вернет его в квадрат один. Так же, как повторное клонирование ветви, сохраняя все мои файлы gitignored локально и на месте.
обновлено на комментарий пользователя ниже: Вариант сбросить все, что текущей ветке пользователь.
пробовал все решения выше, но все еще не мог избавиться от новых, неустановленных файлов.
если вы просто хотите чтобы удалить изменения в существующих файлах используйте checkout (документы).
если вы хотите для удаления файлов добавлено С момента последнего коммита, используйте clean (документы):
если вы желаете для перемещения изменений в удерживающее пространство для последующего доступа используйте stash (документы):
он удалит все ваши локальные изменения. Вы также можете использовать позже, сказав
это работает даже в каталогах, которые находятся; вне обычных разрешений git.
случилось со мной недавно
другой способ избавиться от новых файлов, которые более специфичны, чем git clean-df (это позволит вам избавиться от некоторых файлов не обязательно всех), это сначала добавить новые файлы в индекс, затем заначку, затем отбросить заначку.
этот метод полезен, когда по какой-то причине вы не можете легко удалить все неотслеженные файлы с помощью обычного механизма (например, rm).
то, что следует ниже, действительно является решением, если вы работаете с вилкой репозитория, где вы регулярно синхронизируете (например, запрос pull) с другим РЕПО. Короткий ответ: удалить вилку и refork, но прочитайте предупреждения на github.
У меня была аналогичная проблема, возможно, не идентичная, и мне грустно говорить, что мое решение не идеально, но в конечном итоге эффективно.
У меня часто были бы сообщения о состоянии git, как это (с участием по крайней мере 2/4 files):
зоркий глаз заметит, что эти файлы имеют двойники, которые имеют одну букву в дело. Каким-то образом, и я понятия не имею, что привело меня по этому пути (поскольку я сам не работал с этими файлами из верхнего РЕПО), я переключил эти файлы. Попробуйте многие решения, перечисленные на этой странице (и других страницах), похоже, не помогли.
я смог устранить проблему, удалив мой раздвоенный репозиторий и все локальные репозитории, и reforking. Одного этого было недостаточно; upstream должен был переименовать соответствующие файлы в новые имена файлов. пока у вас нет незафиксированной работы, нет Вики и нет проблем, которые расходятся с вышестоящим репозиторием, вы должны быть в порядке. Вверх по течению может быть не очень доволен вами, мягко говоря. Что касается моей проблемы, это, несомненно, ошибка пользователя, поскольку я не так хорошо разбираюсь в git, но тот факт, что это далеко не легко исправить, указывает на проблему с git.
git-clean-удалить неотслеженные файлы из рабочего дерева
описание
очищает рабочее дерево, рекурсивно удаляя файлы, которые не находятся под контролем версий, начиная с текущего каталога.
обычно удаляются только файлы, неизвестные Git, но если опция-x указывается, игнорируемые файлы также удаляются. Это может, например, полезно удалить все продукты сборки.
опции
— D удалите неотслеживаемые каталоги в дополнение к неотслеживаемым файлам. Если неотслеживаемый каталог управляется другим репозиторием Git, это не удаляется по умолчанию. Использовать параметр-f дважды, если ты действительно хочешь удалить такой каталог.
независимо от того, в каком состоянии находится ваше РЕПО, вы всегда можете сбросить любой предыдущий коммит:
это отбросит все изменения, которые были сделаны после этой фиксации.
когда вы хотите передать заначку кому-то другому:
[edit] как прокомментировано, можно назвать тайники. Ну, используйте это, если вы хотите поделиться своим тайником;)
Если все поэтапные файлы были фактически зафиксированы, то ветку можно просто сбросить, например, с вашего GUI примерно тремя щелчками мыши:филиала, сброс, да!
Так что я часто делаю на практике, чтобы отменить нежелательные изменения, чтобы совершить все хорошие вещи, и затем сбросить ветку.
Если хорошие вещи, которые в один коммит, то вы можете использовать «изменить последний коммит», чтобы вернуть его к постановке или unstaged, если вы в конечном итоге хотите совершить это немного по-другому.
Это может быть не техническое решение, которое вы ищете для своей проблемы, но я нахожу его очень практичным решением. Это позволяет отбрасывать неустановленные изменения выборочно, сбрасывая изменения, которые вам не нравятся, и сохраняя те, которые вы делаете.
Итак, в общем, я просто делаю commit, ветке сбросить и изменить последний коммит.
ни одно из решений не работает, если вы просто поменяли разрешения файла (это на DOS/Windoze)
единственный способ исправить это, чтобы вручную сбросить разрешения на измененные файлы:
вы можете создать свой собственный псевдоним, который описывает, как это сделать в описательной форме.
я использую следующий псевдоним для отмены изменений.
отменить изменения в(списке) файлов (ов) в рабочем дереве
затем вы можете использовать его как рядом, чтобы отменить все изменения:
в противном случае, если вы хотите отменить все изменения, а также неотслеженные файлы, я использую сочетание checkout и чистый:
очистить и отменить изменения и неотслеженные файлы в рабочем дереве
таким образом, использование просто, как далее:
теперь доступен в следующем репозитории Github, который содержит много псевдонимов:
Если вы находитесь в случае подмодуля, и никакие другие решения не работают, попробуйте:
чтобы проверить, в чем проблема (возможно, «грязный» случай) используйте:
чтобы удалить stash
git submodule update
У меня была странная ситуация, когда файл всегда не загружается, это помогает мне решить.