Вопрос: Игнорировать файлы, которые уже были переданы в репозиторий Git [duplicate]


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


2173


источник


Ответы:


Чтобы отследить Один файл, который уже был добавлен / инициализирован в ваш репозиторий, то есть , остановите отслеживание файла, но не удалите его из системы: git rm --cached filename

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

Сначала выполните любые изменения кода , а затем запустите эту команду:

git rm -r --cached .

Это удаляет любые измененные файлы из индекс (промежуточная область), а затем просто запустить:

git add .

Зафиксируйте это:

git commit -m ".gitignore is now working"

Отменить git rm --cached filename, используйте git add filename,

помните, чтобы совершать все ваши изменения раньше, иначе вы потеряете   управлять всем измененным файлом


3622



Если вы пытаетесь игнорировать изменения в файле, который уже отслеживается в репозитории (например, файл dev.properties, который вам нужно изменить для вашей локальной среды, но вы никогда не захотите проверять эти изменения), чем то, что вы хотите сделать является:

git update-index --assume-unchanged <file>

Если вы хотите снова начать отслеживать изменения

git update-index --no-assume-unchanged <file>

Видеть git-update-index (1) Ручная страница ,

Также взгляните на skip-worktreeа также no-skip-worktreeпараметры для индекса обновления, если вам нужно это, чтобы сохранить прошлое git-reset ( с помощью )


Обновить: Поскольку люди спрашивали, вот удобный (и обновленный после прокомментированного ниже) псевдоним для того, чтобы увидеть, какие файлы в настоящее время «игнорируются» (- без изменений) в вашей локальной рабочей области

$ git config --global alias.ignored = !git ls-files -v | grep "^[[:lower:]]"

509



Чтобы отследить файл, который уже был добавлен / инициализирован в ваш репозиторий, то есть прекратите отслеживать файл, но не удалите его из вашей системы: git rm --cached filename


348



Yes - .gitignore system only ignores files not currently under version control from git.

I.e. if you've already added a file called test.txt using git-add, then adding test.txt to .gitignore will still cause changes to test.txt to be tracked.

You would have to git rm test.txt first and commit that change. Only then will changes to test.txt be ignored.


76



Remove trailing whitespace in .gitignore

Also, make sure you have no trailing whitespace in your .gitignore. I got to this question because I was searching for an answer, then I had a funny feeling I should open the editor instead of just cat'ing .gitignore. Removed a single extra space from the end and poof it works now :)


49



i followed these steps

git rm -r --cached .
git add .
git reset HEAD

after that, git delete all files (*.swp in my case) that should be ignoring.


38



If you want to stop tracking file without deleting the file from your local system, which I prefer for ignoring config/database.yml file. Simply try:

git rm --cached config/database.yml
# this will delete your file from git history but not from your local system.

now, add this file to .gitignore file and commit the changes. And from now on, any changes made to config/database.yml will not get tracked by git.

$ echo config/database.yml >> .gitignore

Thanks


36



To remove just a few specific files from being tracked:

git update-index --assume-unchanged path/to/file

If ever you want to start tracking it again:

git update-index --no-assume-unchanged path/to/file                      

28