Добавить вновь созданную конкретную папку в .gitignore в Git - PullRequest
77 голосов
/ 26 августа 2009

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

Я не могу заставить Git игнорировать эту папку, когда я запускаю состояние git.

On branch master
Your branch is ahead of 'origin/master' by 1 commit.

Changes to be committed:
  (use "git reset HEAD <file>..." to unstage)

    new file: app_public/views/pages/privacy.php
    new file: app_public/views/pages/terms.php
    new file: public_html/stats/ctry_usage_200908.png
    new file: public_html/stats/daily_usage_200908.png
    new file: public_html/stats/dns_cache.db
    new file: public_html/stats/hourly_usage_200908.png
    new file: public_html/stats/index.html
    new file: public_html/stats/usage.png
    new file: public_html/stats/usage_200908.html
    new file: public_html/stats/webalizer.current
    new file: public_html/stats/webalizer.hist

Changed but not updated:
    modified: .gitignore

Я добавил в свой .gitignore несколько разных строк, но он все еще пытается добавить их:

public_html/stats
public_html/stats/**
public_html/stats/**/*
public_html/stats/*

Ответы [ 5 ]

88 голосов
/ 26 августа 2009

Попробуйте /public_html/stats/*?

Но так как файлы в git status отмечены как для принятия , это означает, что вы уже добавили их вручную. В этом случае, конечно, уже слишком поздно игнорировать. Вы можете git rm --cache их (IIRC).

75 голосов
/ 26 апреля 2013

Для этого есть два случая

Случай 1: Файл уже добавлен в git repo.

Случай 2: Файл недавно создан, и его статус все еще отображается как неотслеживаемый файл при использовании

git status

Если у вас есть случай 1:

ШАГ 1: Затем запустите

git rm --cached filename 

чтобы удалить его из кеша git repo

если это каталог, тогда используйте

git rm -r --cached  directory_name

ШАГ 2: Если Дело 1 закончено, то создайте новый файл с именем .gitignore в вашем git-репо

ШАГ 3: Используйте следующее, чтобы указать git игнорировать / предположить, что файл не изменился

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

ШАГ 4: Теперь проверьте статус, используя git status open .gitignore в вашем редакторе nano, vim, geany и т.д ... любой, добавьте путь к файлу / папке, чтобы игнорировать Если это папка, то пользователь folder_name/* игнорирует все файлы.

Если вы все еще не понимаете, прочитайте статью git ignore file link.

14 голосов
/ 26 августа 2009

Из "git help ignore" мы узнаем:

Если шаблон заканчивается косой чертой, он удаляется с целью следующее описание, но это будет только найти совпадение с каталогом. В другими словами, foo / будет соответствовать каталог foo и пути под ним, но не будет соответствовать обычный файл или символическая ссылка foo (это соответствует с как вообще работает pathspec в git).

Поэтому вам нужно

public_html / статистика /

5 голосов
/ 26 августа 2009

Это /public_html/stats/*.

$ ~/myrepo> ls public_html/stats/
bar baz foo
$ ~/myrepo> cat .gitignore 
public_html/stats/*
$ ~/myrepo> git status
# On branch master
#
# Initial commit
#
# Untracked files:
#   (use "git add <file>..." to include in what will be committed)
#
#   .gitignore
nothing added to commit but untracked files present (use "git add" to track)
$ ~/myrepo>
1 голос
/ 03 октября 2012

Я невероятно ленив. Я только что выполнил поиск в надежде найти ярлык для этой проблемы, но не получил ответа, поэтому я выбрал его.

~ / bin / IGNORE_ALL

#!/bin/bash
# Usage: IGNORE_ALL <commit message>                                                                                                                             
git status --porcelain | grep '^??' | cut -f2 -d' ' >> .gitignore              
git commit -m "$*" .gitignore 

EG: IGNORE_ALL добавлена ​​статистика игнорирует

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

...