Добавить.gitignore к gitignore
Можно ли добавить .gitignore
подать в .gitignore
сам?
.gitignore
Не работает хотя
Я не хочу видеть это в отредактированных файлах
7 ответов
.gitignore
Файл запрещает всем, кто работает над проектом, включать в проект некоторые общие файлы, такие как сгенерированные файлы кэша. Поэтому вы не должны игнорировать .gitignore
потому что его цель - включить в репо.
Если вы хотите игнорировать файлы только в одном репо, но без фиксации списка игнорирования, вы можете добавить их в .git/info/exclude
в этом репо.
Если вы хотите игнорировать некоторые файлы в каждом репо на вашем компьютере, вы можете создать файл ~/.gitignore_global
а потом беги
git config --global core.excludesfile ~/.gitignore_global
.Gitignore может игнорировать себя, если он никогда не был зарегистрирован:
mhaase@ubuntu:~$ git --version
git version 1.7.9.5
mhaase@ubuntu:~$ git init temp
Initialized empty Git repository in /home/mhaase/temp/.git/
mhaase@ubuntu:~$ cd temp
mhaase@ubuntu:~/temp$ touch .gitignore foo bar baz bat
mhaase@ubuntu:~/temp$ git status
# On branch master
#
# Initial commit
#
# Untracked files:
# (use "git add <file>..." to include in what will be committed)
#
# .gitignore
# bar
# bat
# baz
# foo
mhaase@ubuntu:~/temp$ echo "foo" >> .gitignore
mhaase@ubuntu:~/temp$ echo ".gitignore" >> .gitignore
mhaase@ubuntu:~/temp$ git status
# On branch master
#
# Initial commit
#
# Untracked files:
# (use "git add <file>..." to include in what will be committed)
#
# bar
# bat
# baz
nothing added to commit but untracked files present (use "git add" to track)
Если вы зарегистрируете.gitignore (прежде чем вы скажете ему игнорировать себя), то он всегда будет отображаться в состоянии git, даже если вы позже измените его, чтобы игнорировать себя.
На самом деле нет веских причин для этого. Если вы хотите, чтобы файлы игнорировались только для вашего клона, добавьте их в.git/info/exclude, а не.gitignore
После ввода .gitignore
в файле gitignore попробуйте следующее,
git rm -r --cached .
git add --all
git commit -m "ignoring gitignore"
git push --set-upstream origin master
Это должно работать, хотя, как уже говорилось, игнорирование gitignore может привести к обратным результатам, если ваш репозиторий используется несколькими пользователями.
Да, ты можешь; вы по-прежнему видите его в отредактированных файлах, потому что он все еще отслеживается git, а файлы, отслеживаемые git, всегда помечаются как измененные, даже если они находятся в.gitignore. Так что просто распакуйте его.
Но почему бы не зафиксировать или не сбросить изменения, которые у вас есть? Это гораздо лучший способ удалить его из статуса... Также имейте в виду, что любой свежий клон вашего репозитория должен будет добавить свой .gitignore
, что может быть раздражающим.
Добавление папки или файлов в .git/info/exclude поможет нам сохранить изменения в папке, а также не зафиксировать изменения в репозитории.
В моем случае у меня была папка CMD, содержащая файлы .bat, которые я написал для запуска команд в репозитории.
внесение вышеуказанных изменений в файл .git/info/exclude помогло мне выполнить мое требование.
Вы можете добиться этого, записав это в свой файл.gitignore. В*
добавит все в список игнорирования, а затем !.gitignore
удалит файл.gitignore из списка игнорирования.
*
!.gitignore