Как игнорировать определенные файлы в 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>

Вы можете использовать методы ниже, чтобы игнорировать / не игнорировать изменения в отслеживаемых файлах.

  1. Для игнорирования: git update-index --assume-unchanged <file>
  2. Для возврата игнорируемых файлов: git update-index --no-assume-unchanged <file>

Создать .gitignore в каталоге, где находится.git. Вы можете перечислить файлы в нем, разделенные новой строкой. Вы также можете использовать подстановочные знаки:

*.o
.*.swp

С официального сайта GitHub:

Если у вас уже есть зарегистрированный файл, и вы хотите его игнорировать, Git не будет игнорировать файл, если вы добавите правило позже. В этих случаях вы должны сначала распаковать файл, выполнив следующую команду в вашем терминале:

git rm --cached FILENAME 

или же

git rm --cached .
  1. Перейдите в файл.gitignore и добавьте запись для файлов, которые вы хотите игнорировать.
  2. Пробег git rm -r --cached .
  3. Теперь беги 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

Я пробовал это -

  1. список файлов, которые мы хотим игнорировать

git status .idea/xyz.xml .idea/pqr.iml Output .DS_Store

  1. Скопируйте содержимое шага 1 и добавьте его в файл.gitignore.

echo " .idea/xyz.xml .idea/pqr.iml Output .DS_Store" >> .gitignore

  1. Подтвердить

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 но ни один не работал хорошо. Они затрудняют переключение веток и затрудняют объединение изменений от других. Это мое решение:

Когда я фиксирую, я вручную удаляю файлы из списка изменений

Прежде чем вытащить, я прячу измененные файлы. И после тяги я делаю трещотку.

  1. мерзавец
  2. мерзавец
  3. Git Stash поп

Шаг 3 иногда вызывает слияние и может привести к конфликту, который вам нужно разрешить, и это хорошо.

Это позволяет мне сохранять локальные изменения, которые не доступны другим в команде.

Вы также можете использовать, например, SourceTree и нажимать ppm для файлов, которые вы добавили в ветку и были изменены, а затем выберите «остановить отслеживание». Теперь этот файл будет отмечен значком вопросительного знака, и когда вы снова нажмете ppm на этот файл, вы можете выбрать «Игнорировать». Это добавит этот определенный файл в gitgnore по его относительному пути.

Если вы хотите игнорировать определенные файлы, выполните следующие действия.

  1. зайдите в папку .git, расположенную в вашем рабочем каталоге.
  2. попасть в папку "info".
  3. вы найдете файл с именем «исключить».
  4. добавьте в этот файл имена файлов, которые вы хотите игнорировать.

Если вы не видите папку .git в своем каталоге, в панели просмотра проводника просто отметьте поле «Скрытый элемент».

Единственный случай, с которым вы можете столкнуться, заключается в том, что .gitignore не будет игнорировать файлы, которые вы зафиксировали ранее. Сначала вы должны удалить или переместить эти файлы из репозитория, зафиксировать только что внесенные изменения, а затем добавить «*.class» в .gitignore.

Прямо из Atlassian: https://www.atlassian.com/git/tutorials/saving-changes/gitignore

Если вы хотите игнорировать файл, который вы зафиксировали в прошлом, вам нужно удалить файл из своего репозитория, а затем добавить для него правило .gitignore.

С использованием --cached вариант с git rm означает, что файл будет удален из вашего репозитория, но останется в вашем рабочем каталоге как игнорируемый файл.

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

Для скомпилированного кода. просто пиши

.class or .o
Другие вопросы по тегам