Игнорирование каталогов в репозиториях Git на Windows - PullRequest
924 голосов
/ 05 декабря 2008

Как я могу игнорировать каталоги или папки в Git, используя msysgit в Windows?

Ответы [ 17 ]

7 голосов
/ 05 февраля 2015

Вы можете создать файл ".gitignore" с содержанием:

*
!.gitignore

Это работает для меня и просто.

7 голосов
/ 15 февраля 2012

У меня были некоторые проблемы с получением git для получения файла .gitignore в Windows. Файл $ GIT_DIR / info / exclude, похоже, всегда работает. Недостатком этого подхода, однако, является то, что файлы в каталоге $ GIT_DIR не включены в регистрацию и, следовательно, не являются общими.

(p.s. $ GIT_DIR - это обычно скрытая папка с именем .git)

6 голосов
/ 05 апреля 2018

Когда все остальное терпит неудачу попробуйте отредактировать файл

/. Мерзавец / Информация / исключить

и добавление каталогов, которые вы хотите, в конец файла, например:

# git ls-files --others --exclude-from=.git/info/exclude
# Lines that start with '#' are comments.
# For a project mostly in C, the following would be a good set of
# exclude patterns (uncomment them if you want to use them):
# *.[oa]
# *~
assets/
compiled/

Я добавил папки «assets» и «compiled» в список файлов и каталогов, чтобы их игнорировать.

5 голосов
/ 29 июня 2012

Полагаю, проблема в том, что ваше рабочее дерево имеет вид:

a-cache/foo
a-cache/index.html
b-cache/bar
b-cache/foo
b-cache/index.html
.gitignore

... с .gitignore, который вы описываете. Это даст вам git status вывод как:

$ git status
# On branch master
# Untracked files:
#   (use "git add <file>..." to include in what will be committed)
#
#   .gitignore
#   a-cache/
#   b-cache/

... , если файлы index.html еще не добавлены в хранилище. (git видит, что в каталогах кэша есть неопознанные файлы, но только сообщает о них.) Чтобы это исправить, убедитесь, что вы добавили и зафиксировали файлы index.html:

git add *cache/index.html
git commit -m "Adding index.html files to the cache directories"

... и ваш git status будет выглядеть так:

$ git status
# On branch master
# 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)

(Очевидно, что вы также хотите зафиксировать .gitignore, я просто ленился с этим тестом).

4 голосов
/ 27 июня 2018

в Unix:

touch .gitignore

В Windows:

echo > .gitignore

Эти команды, выполненные в терминале, создадут файл .gitignore в текущем местоположении.

Затем просто добавьте в этот файл .gitignore информацию (например, с помощью Notepad ++), какие файлы или папки следует игнорировать Сохраните ваши изменения. Вот и все:)

Дополнительная информация: https://www.atlassian.com/git/tutorials/saving-changes/gitignore

3 голосов
/ 14 августа 2018

В Windows и Mac, если вы хотите игнорировать папку с именем Flower_Data_Folder в текущем каталоге, вы можете сделать:

echo Flower_Data_Folder >> .gitignore

Если это файл с именем data.txt

echo data.txt >> .gitignore

если это путь типа "Data / passwords.txt"

echo "Data / passwords.txt" >> .gitignore.

1 голос
/ 06 августа 2012

У меня были похожие проблемы, я работаю над цепочкой инструментов Windows с общим репо с ребятами из Linux, они с радостью создают файлы с одинаковыми [кроме случая] именами в данной папке.

В результате я могу клонировать репо и сразу получить десятки «измененных» файлов, которые, если я зарегистрируюсь, приведут к хаосу.

У меня установлены окна, чувствительные к регистру, и git не игнорирует регистр, но все равно не работает (очевидно, в вызовах API win32).

Если я gitignore файлы, то я должен помнить, чтобы не отслеживать файл .gitignore.

Но я нашел хороший ответ здесь http://archive.robwilkerson.org/2010/03/02/git-tip-ignore-changes-to-tracked-files/index.html

Chris

...