Как игнорировать определенные файлы в git?
У меня есть репозиторий с файлом Hello.java
, Когда я компилирую Hello.class
файл создан.
Я создал запись для Hello.class
в .gitignore
файл. Однако файл по-прежнему отслеживается.
Я хочу знать, как заставить мерзавца игнорировать Hello.class
,
30 ответов
Проблема в том, что .gitignore
игнорирует только файлы, которые ранее не отслеживались git add
). Бежать git reset name_of_file
разархивировать файл и сохранить его. Если вы хотите также удалить данный файл из хранилища (после нажатия), используйте git rm --cached name_of_file
,
Как игнорировать новые файлы
глобально
Добавьте пути к вашим файлам, которые вы хотели бы игнорировать, в свой файл.gitignore (и зафиксируйте их). Эти записи файла будут также применяться к другим, проверяющим репо.
вместном масштабе
Добавьте пути к вашим файлам, которые вы хотели бы игнорировать, в свой файл.git / info / exclude. Эти записи файла будут применяться только к вашей локальной рабочей копии.
Как игнорировать измененные файлы (временно)
Чтобы игнорировать измененные файлы, чтобы они отображались как измененные, вы можете использовать следующую команду git:
git update-index --assume-unchanged <file>
Чтобы вернуть это невежество, используйте следующую команду:
git update-index --no-assume-unchanged <file>
Добавьте следующую строку в.gitignore:
/Hello.class
Это исключит Hello.class из git. Если вы уже зафиксировали его, выполните следующую команду:
git rm Hello.class
Если вы хотите исключить все файлы классов из git, добавьте следующую строку в.gitignore:
*.class
1) создать .gitignore
файл, чтобы сделать это, вы просто создаете .txt
файл и измените расширение следующим образом:
Затем вы должны изменить имя, написав следующую строку в cmd:
rename git.txt .gitignore
куда git.txt
это имя файла, который вы только что создали.
Затем вы можете открыть файл и записать все файлы, которые вы не хотите добавлять в хранилище. Например мой выглядит так:
#OS junk files
[Tt]humbs.db
*.DS_Store
#Visual Studio files
*.[Oo]bj
*.user
*.aps
*.pch
*.vspscc
*.vssscc
*_i.c
*_p.c
*.ncb
*.suo
*.tlb
*.tlh
*.bak
*.[Cc]ache
*.ilk
*.log
*.lib
*.sbr
*.sdf
*.pyc
*.xml
ipch/
obj/
[Bb]in
[Dd]ebug*/
[Rr]elease*/
Ankh.NoLoad
#Tooling
_ReSharper*/
*.resharper
[Tt]est[Rr]esult*
#Project files
[Bb]uild/
#Subversion files
.svn
# Office Temp Files
~$*
Если у вас есть это, вам нужно добавить его в свой репозиторий git. Вы должны сохранить файл, в котором находится ваш репозиторий.
Затем в вашем git bash вы должны написать следующую строку:
git config --global core.excludesfile ~/.gitignore_global
Если репозиторий уже существует, вы должны сделать следующее:
1)git rm -r --cached .
2)git add .
3)git commit -m ".gitignore is now working"
Если шаг 2 не работает, вы должны написать маршрут дырки файлов, которые вы хотели бы добавить.
Надеюсь, поможет!
Игнорировать:
git update-index --assume-unchanged <path/to/file>
Чтобы отменить игнорировать:
git update-index --no-assume-unchanged <path/to/file>
Вы можете использовать методы ниже, чтобы игнорировать / не игнорировать изменения в отслеживаемых файлах.
- Для игнорирования:
git update-index --assume-unchanged <file>
- Для возврата игнорируемых файлов:
git update-index --no-assume-unchanged <file>
Создать .gitignore
в каталоге, где находится.git. Вы можете перечислить файлы в нем, разделенные новой строкой. Вы также можете использовать подстановочные знаки:
*.o
.*.swp
С официального сайта GitHub:
Если у вас уже есть зарегистрированный файл, и вы хотите его игнорировать, Git не будет игнорировать файл, если вы добавите правило позже. В этих случаях вы должны сначала распаковать файл, выполнив следующую команду в вашем терминале:
git rm --cached FILENAME
или же
git rm --cached .
- Перейдите в файл.gitignore и добавьте запись для файлов, которые вы хотите игнорировать.
- Пробег
git rm -r --cached .
- Теперь беги
git add .
Вы должны написать что-то вроде
*.class
в ваш .gitignore
файл.
Сначала создайте файл.gitignore, в котором мы должны хранить имена файлов и каталогов, которые нужно игнорировать. Игнорировать каталог;
name_of_directory/
Игнорировать файл;
name_of_file
Нам не нужно указывать полный путь к файлу или каталогу, который нужно игнорировать, мы просто должны указать его имя.
Если вы хотите игнорировать все файлы с одинаковым расширением;
*.pyc #will ignore all files with pyc extention
Если вы уже зафиксировали файл и пытаетесь проигнорировать его, добавив в файл.gitignore, git не проигнорирует его, так как сначала вы должны сделать следующее:
git rm --cached FILENAME
если вы только начинаете проект и хотите добавить некоторые файлы в git ignore, выполните следующие шаги для создания git ignore file
1.Navigate to your git Repo.
2.Enter touch .gitignore which will create .gitignore file.
Добавьте в.gitignore, какие файлы вы хотите игнорировать
*.учебный класс
*.projects
*.prefs
*.project
Создавая файл.gitignore. Подробности смотрите здесь: Git Book - Игнорирование файлов
Также проверьте это: как заставить Git игнорировать файлы без использования.gitignore?
git reset filename
git rm --cached filename
затем добавьте свой файл, который вы хотите игнорировать,
затем зафиксируйте и отправьте в свой репозиторий
Вы также можете использовать.gitattributes (вместо.gitignore) для исключения целых типов файлов. Файл довольно понятен, но я вставляю содержимое здесь для справки. Обратите внимание на последнюю строку (двоичный файл *.class)
# Denote all files that are truly binary and should not be modified.
*.png binary
*.jpg binary
*.gif binary
*.ico binary
*.mo binary
*.pdf binary
*.phar binary
*.class binary
Я пробовал это -
- список файлов, которые мы хотим игнорировать
git status
.idea/xyz.xml
.idea/pqr.iml
Output
.DS_Store
- Скопируйте содержимое шага 1 и добавьте его в файл.gitignore.
echo "
.idea/xyz.xml
.idea/pqr.iml
Output
.DS_Store" >> .gitignore
- Подтвердить
git status
.gitignore
аналогично мы можем добавить каталог и все его подкаталог / файлы, которые мы хотим игнорировать в статусе git, используя directoryname/*
и я выполнил эту команду из src
каталог.
У меня была похожая проблема с файлом "dump.rdb".
Я пытался добавить этот файл различными способами в файл.gitignore, но сработал только один способ.
Добавьте свое имя файла в конце файла.gitignore
ПРИМЕЧАНИЕ. Добавление файла в другом месте не работает.
Например, см.: https://gitlab.com/gitlab-org/gitlab-ce/raw/b3ad3f202478dd88a3cfe4461703bc3df1019f90/.gitignore
Добавьте следующую строку в.git/info/exclude:
Здравствуйте, класс
Чтобы игнорировать файл в Git, создайте файл в корневом каталоге вашего проекта. Этот файл содержит список файлов, которые Git должен игнорировать.
Вот некоторые из моих шагов по созданию и игнорированию файлов.
Создайте в своем проекте
Внутри файла добавьте имена файлов, которые вы хотите игнорировать, например
api_keys.txt
и добавьте следующие строки в ваш файл.Запустите следующие команды, чтобы подготовить и зафиксировать изменения в вашем файле:
git add .gitignore
git commit -m "Add .gitignore file"
Git будет игнорировать только те файлы, которые еще не были зафиксированы в вашем репозитории Git, так что имейте это в виду. Если вы хотите игнорировать файл, который вы уже зафиксировали, вы должны сначала удалить его из своего репозитория Git, прежде чем добавлять его в свой файл:
git rm --cached api_keys.txt
Файл больше не будет присутствовать в репозитории Git, но останется в вашей локальной файловой системе. После этого вы можете добавить его в свой.gitignore
файл и отправьте изменения.
Эта веб-страница может быть полезной и экономящей время при работе с.gitignore.
Он автоматически генерирует файлы.gitignore для различных IDE и операционных систем с конкретными файлами / папками, которые вы обычно не хотите загружать в свой репозиторий git (например, специфичные для IDE папки и файлы конфигурации).
Чтобы удалить уже зафиксированный/подготовленный файл из GITgit rm --cached <file_name>
Добавьте в файл следующую строку:/<file_name>
Если вы хотите исключить все файлы классов из Git, добавьте следующую строку в.gitignore
:*<file_extension>
Если какой-либо файл был добавлен в git раньше, удалите этот файл, добавьте этот файл в .gitignore.
Пример: если возникли проблемы с игнорированием файла package.resolved, созданного при добавлении зависимости spm. Я добавил следующие строки в свой файл .gitignore
Packages/
Package.pins
Package.resolved
*.xcworkspace
и удалил файл package.resolved. Теперь git начинает игнорировать мой файл package.resolved.
Если вы хотите игнорировать файл, который уже возвращен, вы должны отменить отслеживание файла, прежде чем добавлять правило для его игнорирования:
$ git rm --cached FILENAME
теперь зафиксируйте изменения и добавьте путь к файлу .gitignore.
Я попробовал --assume-unchanged
а также .gitignore
но ни один не работал хорошо. Они затрудняют переключение веток и затрудняют объединение изменений от других. Это мое решение:
Когда я фиксирую, я вручную удаляю файлы из списка изменений
Прежде чем вытащить, я прячу измененные файлы. И после тяги я делаю трещотку.
- мерзавец
- мерзавец
- Git Stash поп
Шаг 3 иногда вызывает слияние и может привести к конфликту, который вам нужно разрешить, и это хорошо.
Это позволяет мне сохранять локальные изменения, которые не доступны другим в команде.
Вы также можете использовать, например, SourceTree и нажимать ppm для файлов, которые вы добавили в ветку и были изменены, а затем выберите «остановить отслеживание». Теперь этот файл будет отмечен значком вопросительного знака, и когда вы снова нажмете ppm на этот файл, вы можете выбрать «Игнорировать». Это добавит этот определенный файл в gitgnore по его относительному пути.
Если вы хотите игнорировать определенные файлы, выполните следующие действия.
- зайдите в папку .git, расположенную в вашем рабочем каталоге.
- попасть в папку "info".
- вы найдете файл с именем «исключить».
- добавьте в этот файл имена файлов, которые вы хотите игнорировать.
Если вы не видите папку .git в своем каталоге, в панели просмотра проводника просто отметьте поле «Скрытый элемент».
Единственный случай, с которым вы можете столкнуться, заключается в том, что .gitignore не будет игнорировать файлы, которые вы зафиксировали ранее. Сначала вы должны удалить или переместить эти файлы из репозитория, зафиксировать только что внесенные изменения, а затем добавить «*.class» в .gitignore.
Прямо из Atlassian: https://www.atlassian.com/git/tutorials/saving-changes/gitignore
Если вы хотите игнорировать файл, который вы зафиксировали в прошлом, вам нужно удалить файл из своего репозитория, а затем добавить для него правило .gitignore.
С использованием
--cached
вариант с
git rm
означает, что файл будет удален из вашего репозитория, но останется в вашем рабочем каталоге как игнорируемый файл.
У вас все еще должен быть файл в вашем рабочем каталоге, но его нельзя будет отправить в удаленное репо, если вы его не заставите.