Исключение вложенных папок GIT
Имеется такая файловая структура:
-root
| .git
| .gitignore
| root-file.txt
| -home
| .gitkeep
| home-file.txt
содержимое файла .gitignore:
/home/*
!/home/
!/home/.gitkeep
Команда 1 C:\root> git status:
Changes to be committed:
(use "git rm --cached <file>..." to unstage)
new file: ../.gitignore
new file: ../.root_file
new file: .gitkeep
Команда [2] C:\root\home> git status выводит соответственно тоже самое.
Как настроить репозиторий или сам git что бы при нахождении в папке home git "не видел репозиторий"?
вот так сделать: C:\root\home> git status
fatal: not a git repository (or any of the parent directories): .git
Возможно ли это?
Нашёл ответ тут https://stackoverflow.com/questions/14046563/ignore-git-in-parent-directories-for-git-status-branch-etc. Можно ли это сделать на винде и для каждого отдельного репозитория
Ответы (1 шт):
Нашёл ответ тут https://stackoverflow.com/questions/14046563/ignore-git-in-parent-directories-for-git-status-branch-etc. Можно ли это сделать на винде и для каждого отдельного репозитория
Да, можно.
Нужно любым способом установить переменную окружения GIT_CEILING_DIRECTORIES равной списку путей, по аналогии с переменной среды PATH. В ответе по ссылке разделитель двоеточие, как принято в unix, в windows — точка с запятой (;).
Важно, что поиск папки .git будет игнорироваться не для указанной папки, а для всех её подпапок.
То есть, если вы выполните в виндовой консоли
SET GIT_CEILING_DIRECTORIES=C:\root\home\
то в самой папке home status будет работать как и сейчас, а в подпапках проектов уже выведет, что это не репозиторий.
Если же сделать
SET GIT_CEILING_DIRECTORIES=C:\root\
То получите как и написано в вопросе. Но при этом и во всех соседних с home подпарках git будет уверен, что вы не в репозитории.