Как убрать untracked files git
Как удалить локальные (неотслеживаемые) файлы из текущего рабочего дерева Git
Как вы удаляете неотслеживаемые локальные файлы из вашего текущего рабочего дерева?
конспект
Описание
. даны какие-либо необязательные аргументы, затрагиваются только эти пути.
Обратите внимание на разницу в регистре X для двух последних команд.
Снова смотрите git-clean документы для получения дополнительной информации.
Опции
Удалите только файлы, игнорируемые Git. Это может быть полезно для восстановления всего с нуля, но сохраняйте созданные вручную файлы.
На самом деле ничего не удаляйте, просто покажите, что будет сделано.
На самом деле ничего не удаляйте, просто покажите, что будет сделано.
Я удивлен, что никто не упомянул об этом раньше:
Простой способ удалить неотслеживаемые файлы
РЕДАКТИРОВАТЬ: Также я нашел способ показать неотслеживаемый файл в тайнике (например git show stash@<0>^3 ) https://stackoverflow.com/a/12681856/338986
Это то, что я всегда использую:
Для очень большого проекта вы можете запустить его пару раз.
Если необходимо удалить неотслеживаемые файлы из определенного подкаталога,
И комбинированный способ удаления неотслеживаемых каталогов / файлов и игнорируемых файлов.
Удалите все лишние папки и файлы в этом репо + подмодули
Это приводит вас в то же состояние, что и свежий клон.
Удалите все дополнительные папки и файлы в этом репо, но не его подмодули
Удалите лишние папки, но не файлы (например, папку build или logs)
Удалить лишние папки + пропущенные файлы (но не новые добавленные файлы)
Если файл не был проигнорирован и еще не зарегистрирован, он остается. Обратите внимание на заглавную X.
Новый интерактивный режим
могут быть использованы все вышеперечисленные варианты в комбинации как
проверьте руководство git для получения дополнительной помощи
ОК, удалить ненужные неотслеживаемые файлы и папки легко git в командной строке, просто сделайте это так:
Если вы хотите удалить (каталоги) и файлы, вы можете удалить только неотслеживаемые каталоги и файлы, например:
Лучше всего использовать git clean
Пользовательский интерактивный подход:
-i для интерактивной
-f для принудительной
-d для директории
-x для игнорируемых файлов (добавьте при необходимости)
Примечание: Добавьте -n или —dry-run, чтобы просто проверить, что он будет делать.
Lifehack для такой ситуации, которую я только что изобрел и попробовал (это прекрасно работает):
У меня работали только следующие:
Во всех других случаях я получал сообщение «Пропуск каталога» для некоторых подкаталогов.
Если вы просто хотите удалить файлы, перечисленные как неотслеживаемые «git status»
Я предпочитаю это «git clean», потому что «git clean» удалит файлы, игнорируемые git, поэтому ваша следующая сборка должна будет перестроить все, и вы также можете потерять настройки IDE.
Чтобы узнать, что будет удалено перед фактическим удалением:
Это выведет что-то вроде:
Удалил sample.txt
Чтобы удалить все, что перечислено в выводе предыдущей команды:
Это выведет что-то вроде:
Удаление файла sample.txt
Чтобы удалить неотслеживаемые файлы, вы должны сначала использовать команду для просмотра файлов, которые будут затронуты очисткой
Это покажет вам список файлов, которые будут удалены. Теперь, чтобы фактически удалить эти файлы, используйте эту команду:
Будьте внимательны при выполнении команды `git clean`.
альтернативно
Если вы не уверены на 100%, что удаление вашей незафиксированной работы безопасно, вы можете вместо этого использовать копирование
Здесь я рассмотрел некоторые основы в своем блоге, git-intro-basic-команды
Доступные Варианты:
Объяснение:
1. -d
Покажите, что будет сделано, и очистите файлы в интерактивном режиме. Подробнее см. «Интерактивный режим».
На самом деле ничего не удаляйте, просто покажите, что будет сделано.
Будьте спокойны, сообщайте только об ошибках, но не о файлах, которые были успешно удалены.
Удалите только файлы, игнорируемые Git. Это может быть полезно для восстановления всего с нуля, но сохраняйте созданные вручную файлы.
Запись изменений в репозиторий
Итак, у вас имеется настоящий Git-репозиторий и рабочая копия файлов для некоторого проекта. Вам нужно делать некоторые изменения и фиксировать «снимки» состояния (snapshots) этих изменений в вашем репозитории каждый раз, когда проект достигает состояния, которое вам хотелось бы сохранить.
Запомните, каждый файл в вашем рабочем каталоге может находиться в одном из двух состояний: под версионным контролем (отслеживаемые) и нет (неотслеживаемые). Отслеживаемые файлы — это те файлы, которые были в последнем снимке состояния проекта; они могут быть неизменёнными, изменёнными или подготовленными к коммиту. Если кратко, то отслеживаемые файлы — это те файлы, о которых знает Git.
Неотслеживаемые файлы — это всё остальное, любые файлы в вашем рабочем каталоге, которые не входили в ваш последний снимок состояния и не подготовлены к коммиту. Когда вы впервые клонируете репозиторий, все файлы будут отслеживаемыми и неизменёнными, потому что Git только что их извлек и вы ничего пока не редактировали.
Как только вы отредактируете файлы, Git будет рассматривать их как изменённые, так как вы изменили их с момента последнего коммита. Вы индексируете эти изменения, затем фиксируете все проиндексированные изменения, а затем цикл повторяется.
Определение состояния файлов
Отслеживание новых файлов
Индексация изменённых файлов
Теперь оба файла проиндексированы и войдут в следующий коммит. В этот момент вы, предположим, вспомнили одно небольшое изменение, которое вы хотите сделать в CONTRIBUTING.md до коммита. Вы открываете файл, вносите и сохраняете необходимые изменения и вроде бы готовы к коммиту. Но давайте-ка ещё раз выполним git status :
Сокращенный вывод статуса
Игнорирование файлов
Первая строка предписывает Git игнорировать любые файлы заканчивающиеся на «.o» или «.a» — объектные и архивные файлы, которые могут появиться во время сборки кода. Вторая строка предписывает игнорировать все файлы заканчивающиеся на тильду (
Стандартные шаблоны являются глобальными и применяются рекурсивно для всего дерева каталогов.
Чтобы избежать рекурсии используйте символ слеш (/) в начале шаблона.
Чтобы исключить каталог добавьте слеш (/) в конец шаблона.
Можно инвертировать шаблон, использовав восклицательный знак (!) в качестве первого символа.
Просмотр индексированных и неиндексированных изменений
Чтобы увидеть, что же вы изменили, но пока не проиндексировали, наберите git diff без аргументов:
Эта команда сравнивает содержимое вашего рабочего каталога с содержимым индекса. Результат показывает ещё не проиндексированные изменения.
Важно отметить, что git diff сама по себе не показывает все изменения сделанные с последнего коммита — только те, что ещё не проиндексированы. Такое поведение может сбивать с толку, так как если вы проиндексируете все свои изменения, то git diff ничего не вернёт.
Другой пример: вы проиндексировали файл CONTRIBUTING.md и затем изменили его, вы можете использовать git diff для просмотра как проиндексированных изменений в этом файле, так и тех, что пока не проиндексированы. Если наше окружение выглядит вот так:
Используйте git diff для просмотра непроиндексированных изменений
Коммит изменений
Эта команда откроет выбранный вами текстовый редактор.
В редакторе будет отображён следующий текст (это пример окна Vim):
Вы можете видеть, что комментарий по умолчанию для коммита содержит закомментированный результат работы команды git status и ещё одну пустую строку сверху. Вы можете удалить эти комментарии и набрать своё сообщение или же оставить их для напоминания о том, что вы фиксируете.
Итак, вы создали свой первый коммит! Вы можете видеть, что коммит вывел вам немного информации о себе: на какую ветку вы выполнили коммит ( master ), какая контрольная сумма SHA-1 у этого коммита ( 463dc4f ), сколько файлов было изменено, а также статистику по добавленным/удалённым строкам в этом коммите.
Запомните, что коммит сохраняет снимок состояния вашего индекса. Всё, что вы не проиндексировали, так и висит в рабочем каталоге как изменённое; вы можете сделать ещё один коммит, чтобы добавить эти изменения в репозиторий. Каждый раз, когда вы делаете коммит, вы сохраняете снимок состояния вашего проекта, который позже вы можете восстановить или с которым можно сравнить текущее состояние.
Игнорирование индексации
Удаление файлов
Если вы просто удалите файл из своего рабочего каталога, он будет показан в секции «Changes not staged for commit» (измененные, но не проиндексированные) вывода команды git status :
В команду git rm можно передавать файлы, каталоги или шаблоны. Это означает, что вы можете сделать что-то вроде:
Эта команда удаляет все файлы, имена которых заканчиваются на
Перемещение файлов
В отличие от многих других систем контроля версий, Git не отслеживает перемещение файлов явно. Когда вы переименовываете файл в Git, в нём не сохраняется никаких метаданных, говорящих о том, что файл был переименован. Однако, Git довольно умён в плане обнаружения перемещений постфактум — мы рассмотрим обнаружение перемещения файлов чуть позже.
Таким образом, наличие в Git команды mv выглядит несколько странным. Если вам хочется переименовать файл в Git, вы можете сделать что-то вроде:
и это отлично сработает. На самом деле, если вы выполните что-то вроде этого и посмотрите на статус, вы увидите, что Git считает, что произошло переименование файла:
Однако, это эквивалентно выполнению следующих команд:
Remove a file from a Git repository without deleting it from the local filesystem
will remove a file from the repository, but will also remove it from the local file system.
How can I remove this file from the repo without deleting my local copy of the file?
12 Answers 12
So, for a single file:
and for a single directory:
To remove an entire folder from the repo (like Resharper files), do this:
I had committed some resharper files, and did not want those to persist for other project users.
Or, alternatively, on Windows Powershell:
To remove folder/directory or file only from git repository and not from the local try 3 simple steps.
Steps to remove directory
Steps to ignore that folder in next commits
To ignore that folder from next commits make one file in root named .gitignore and put that folders name into it. You can put as many as you want
.gitignore file will be look like this
Also, if you have commited sensitive data (e.g. a file containing passwords), you should completely delete it from the history of the repository. Here’s a guide explaining how to do that: http://help.github.com/remove-sensitive-data/
A more generic solution:
Remove all items from index.
Hence, not deleting it, but ignoring changes to it forever. I think this only works locally, so co-workers can still see changes to it unless they run the same command as above. (Still need to verify this though.)
Note: This isn’t answering the question directly, but is based on follow up questions in the comments of the other answers.
Git для начинающих. Часть 8. Добавление, удаление и переименование файлов в репозитории
В рамках данного урока рассмотрим вопросы, касающиеся добавления, удаления и переименования файлов в git репозитории.
Добавление файлов в git репозиторий
Теперь проверим состояние отслеживаемой директории.
Посмотрим ещё раз на состояние.
Теперь в рабочей директории и в stage нет объектов, информацию об изменении которых необходимо внести в репозиторий.
В репозиторий был сделан один коммит.
Удаление файлов из git репозитория и из stage
Удаление файла из stage
Видно, что изменения в файле README.md готовы для коммита, а вот файл main.c перешел в состояние – неотслеживаемый. Отправим main.c в stage и, после этого, сделаем коммит в репозиторий.
Удаление файлов из git репозитория
Удалим файл main.c из рабочей директории.
Второй способ – это сразу использовать команду git rm без предварительного удаления файла из директории. Вновь создадим файл main.c и добавим его в репозиторий.
Удалим файл из репозитория.
Файла main.c больше нет в репозитории.
Его также нет и в рабочем каталоге.
Удалите файл README.md из репозитория самостоятельно.
Переименование файлов в git репозитории
Как и в случае с удалением, переименовать файл в git репозитории можно двумя способами – с использованием и без использования средств операционной системы.
Первый способ. Создадим файл test_main_file.c и добавим его в репозиторий.
Содержимое репозитория после этого будет выглядеть так.
Сделаем это в рабочей директории.
Теперь отправим изменение в репозиторий.
Второй способ.
Имя файла изменилось как в репозитории так и в рабочем каталоге.
Добавление, удаление и отслеживание изменений в Git (git add, git status, git remove)
В предыдущем уроке по созданию репозитория Git мы научились создавать новый репозиторий git для проекта. Теперь, когда у нас есть проект Git, пришло время начать работать и с ним. Проект Git можно рассматривать как состоящий из трех частей:
Эта статья полностью посвящена работе с локальным репозиторием и отслеживаемыми / не отслеживаемыми изменениями. Мы будем охватывать следующие команды git:
Прежде чем использовать вышеперечисленные команды, мы должны создать некоторые файлы в проекте репозитория git.
После этого репозиторий git будет выглядеть следующим образом:
Git Status
Git Status — это еще одна обязательная команда, которая возвращает информацию о текущем состоянии репозитория. Например, список измененных файлов, список отслеживаемых изменений на промежуточном этапе, неотслеживаемые изменения на локальном уровне и информация о текущей ветви и коммитах.
1) Теперь откройте командную строку и перейдите в репозиторий git
2) Просто введите git status в командной строке.
branch master: говорит о том, что рабочее дерево является главной ветвью.
no commits yet: дает информацию о коммитах, на данный момент их еще нет.
Untracked files: говорит о том, что Git видит файлы, но еще не начал отслеживать изменения и отметил их красным цветом.
Status messages: дает соответствующие инструкции для промежуточных / нестагнирующих файлов.
Git add
Команда git add добавляет изменение в рабочий каталог в промежуточную область. Она сообщает Git, что в проекте есть несколько обновлений, которые пользователь хочет зафиксировать. Здесь следует отметить, что git add не влияет на удаленный репозиторий, так как изменения фактически не записываются до тех пор, пока вы не выполните git commit.
1) Давайте просто начнем с добавления одного файла к заявке. Чтобы использовать команду git add, просто введите git add filename. Слово filename здесь относится к имени файла, который вы редактировали, например CustomerData_IND.txt. Кроме того, используйте команду git status, чтобы увидеть, что git теперь может рассказать нам о состоянии репозитория.
Changes to be comitted: здесь отображается информация о отслеживаемых файлах, хранящихся на промежуточном этапе. Это тот самый, который мы добавили с помощью команды git add.
Untracked files: здесь отображается информация о неотслеживаемых файлах. Это те самые, которые добавили в проект раньше, но до сих пор не подтолкнули к постановке.
Команда Git Remove
Команда git rm удаляет отслеживаемые изменения из промежуточной области. Это говорит Git, что обновления, которые были перенесены на промежуточную стадию ранее с помощью команды git add, не готовы к фиксации. Поэтому при выполнении этой команды git просто удаляет изменения из промежуточного состояния. Но изменения все еще существуют в локальном репозитории. Если вы внимательно посмотрите на выходные данные приведенного выше изображения раздела 1. В этом git дает пользователю предложение о том, что отслеживаемый файл на промежуточной стадии может быть удален с помощью git rm — —
Чтобы практиковать эту команду, давайте попробуем удалить тот же CustomerData_IND.txt, который был добавлен ранее.
Untracked files: CustomerData_IND.txt файл вернулся к списку игнорируемых изменения.
Добавление различных измененных файлов в промежуточную среду
Выше мы просто добавили один файл в staging. Что делать, если там будет несколько файлов для добавления. Это может быть легко достигнуто с помощью git add .
Чтобы добавить несколько файлов, введите
git add CustomerData_IND.txt CustomerData_UK.txt

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

Примечание: это двойной дефис, « — — » но без пробела перед ключевым словом cached.
Вывод: упомянутые два файла в команде теперь удаляются из промежуточного состояния и возвращаются в неотслеживаемый список.
Добавим все измененные файлы в промежуточную версию
Выше мы добавили несколько файлов в staging, но что делать, если там будет много файлов для добавления? Это может быть легко достигнуто с помощью git add *.
Чтобы добавить все измененные файлы, введите git add *
Все измененные файлы теперь перемещаются в промежуточный режим.
Таким же образом все файлы могут быть удалены из промежуточного состояния и перемещены обратно в неотслеживаемый список.
В последнем уроке мы познакомились с командой Git fetch и Read more
В одной из последних статей мы узнали о команде Git Read more
Мы уже знаем, как вносить изменения в локальное хранилище и Read more
Команда git push при выполнении перемещает изменения, внесенные пользователем на Read more
«Клонирование» означает создание идентичных особей естественным или искусственным путем. Клонирование Read more
Сегодня мы узнаем, как скопировать чужой репозиторий в наш аккаунт Read more

















