Почему вы хотите это сделать? просто зафиксируйте свои изменения. .gitignoreдолжен быть частью вашего репозитория, перечисляя шаблоны файлов, которые являются нежелательными для проекта.
KurzedMetal
1
.gitignoreдолжен быть частью вашего репозитория, чтобы все в вашей команде игнорировали или проверяли одни и те же файлы. Тот факт, что он .gitignoreнаходится где-то в ваших папках с кодом, не означает, что вам нужно его развернуть.
вы можете использовать git rm --cached .gitignoreи отключать .gitignore
hassanzadeh.sd
Ответы:
170
Цель .gitignoreфайла - предотвратить случайную фиксацию некоторых общих файлов в проекте, например, сгенерированных файлов кэша, всеми участниками проекта. Поэтому не следует игнорировать.gitignore , так как он должен быть включен в репозиторий.
Если вы хотите игнорировать файлы только в одном репозитории, но хотите избежать фиксации списка игнорирования (например, для личных файлов), вы можете добавить их .git/info/excludeв этот репозиторий.
Если вы хотите игнорировать определенные файлы в каждом репозитории на вашем компьютере, вы можете создать файл, ~/.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, даже если вы позже измените его, чтобы игнорировать себя.
Собственно, это мой случай. Я хочу, чтобы у меня работал местный .gitignoreжитель git-svn, которого никто не должен видеть. Так что я просто добавил это к себе, и это сработало. Но потом я погуглил, чтобы посмотреть, объяснят ли некоторые встревоженные люди другим, что это «плохо». Этот ответ следует принять, и тогда я также проголосую за .git/info/excludeпредложения. Так что его просто нужно отследить ... Не очень удивительно, по крайней мере, если вас когда-либо "подрывали" (svn).
Tomasz Gandor
.gitignoreСначала у меня есть резервная копия файла. Затем я использую git rm .gitignoreи фиксирую это изменение. Наконец, .gitignoreснова добавьте и зафиксируйте файл с правилом для .gitignore. Оно работает!
qzhang
4
Чтобы исправить это, вы можете запустить git rm --cached .gitignore.
Гидеон
19
На самом деле нет веских причин для этого. Если вы хотите, чтобы файлы игнорировались только для вашего клона , добавляйте их .git/info/exclude, а не в .gitignoreфайл.
Я получаю сообщение «Невозможно завершить операцию из-за существующих изменений в следующем файле», и файл, в котором он указан, является тем, который у меня есть в исключении. Есть идеи почему?
Пол Маккарти,
3
После того, как вы войдете .gitignoreв свой файл gitignore, попробуйте следующее:
Он должен работать, хотя, как уже было сказано, игнорирование gitignore может быть контрпродуктивным, если ваше репо используется несколькими пользователями.
Да, ты можешь; вы по-прежнему видите его в отредактированных файлах, потому что он все еще отслеживается git, а файлы, отслеживаемые git, всегда помечаются как измененные, даже если они находятся в .gitignore. Так что просто отследите это.
Но почему бы не зафиксировать или сбросить изменения, которые у вас есть? Это гораздо лучший способ удалить его из статуса ... Также имейте в виду, что любой свежий клон вашего репозитория должен будет добавить его .gitignore, что может раздражать.
Да, и вам got rm --cached .gitignore, наверное , нужно будет удалить его отдельно от git .
Tadeck
git rm --cached .gitignore удаляется из git. Это разрушительно и нежелательно. Как просто игнорировать .gitignore для локального клона?
javadba
0
Вы можете добиться этого, записав это в свой файл .gitignore. Он *добавит все в список игнорирования, а затем !.gitignoreудалит файл .gitignore из списка игнорирования.
Да, правильно, я уже говорил о том же. *проигнорирует все. Включая .gitignoreфайл.
Анкит Сингх,
1
Я имею в виду, OP пытается удалить в .gitignoreфайл из кодовую (добавляя его к себе, что на самом деле не имеет смысла, но кто я такой, чтобы судить). Здесь я вижу предложение, которое гарантирует, что файл никогда не игнорируется, что, в свою очередь, означает, что он существует ( добавлен в) кодовую базу
Дмитрий Паржицкий
Это правильно. Сам вопрос кажется запутанным. Но ладно
.gitignore
должен быть частью вашего репозитория, перечисляя шаблоны файлов, которые являются нежелательными для проекта..gitignore
должен быть частью вашего репозитория, чтобы все в вашей команде игнорировали или проверяли одни и те же файлы. Тот факт, что он.gitignore
находится где-то в ваших папках с кодом, не означает, что вам нужно его развернуть.git rm --cached .gitignore
и отключать .gitignoreОтветы:
Цель
.gitignore
файла - предотвратить случайную фиксацию некоторых общих файлов в проекте, например, сгенерированных файлов кэша, всеми участниками проекта. Поэтому не следует игнорировать.gitignore
, так как он должен быть включен в репозиторий.Если вы хотите игнорировать файлы только в одном репозитории, но хотите избежать фиксации списка игнорирования (например, для личных файлов), вы можете добавить их
.git/info/exclude
в этот репозиторий.Если вы хотите игнорировать определенные файлы в каждом репозитории на вашем компьютере, вы можете создать файл,
~/.gitignore_global
а затем запуститьисточник
.Gitignore может игнорировать себя, если он никогда не регистрировался :
Если вы отметите .gitignore (прежде чем вы укажете ему игнорировать себя), он всегда будет отображаться в статусе git, даже если вы позже измените его, чтобы игнорировать себя.
источник
.gitignore
жительgit-svn
, которого никто не должен видеть. Так что я просто добавил это к себе, и это сработало. Но потом я погуглил, чтобы посмотреть, объяснят ли некоторые встревоженные люди другим, что это «плохо». Этот ответ следует принять, и тогда я также проголосую за.git/info/exclude
предложения. Так что его просто нужно отследить ... Не очень удивительно, по крайней мере, если вас когда-либо "подрывали" (svn)..gitignore
Сначала у меня есть резервная копия файла. Затем я используюgit rm .gitignore
и фиксирую это изменение. Наконец,.gitignore
снова добавьте и зафиксируйте файл с правилом для.gitignore
. Оно работает!git rm --cached .gitignore
.На самом деле нет веских причин для этого. Если вы хотите, чтобы файлы игнорировались только для вашего клона , добавляйте их
.git/info/exclude
, а не в.gitignore
файл.источник
После того, как вы войдете
.gitignore
в свой файл gitignore, попробуйте следующее:Он должен работать, хотя, как уже было сказано, игнорирование gitignore может быть контрпродуктивным, если ваше репо используется несколькими пользователями.
источник
Да, ты можешь; вы по-прежнему видите его в отредактированных файлах, потому что он все еще отслеживается git, а файлы, отслеживаемые git, всегда помечаются как измененные, даже если они находятся в .gitignore. Так что просто отследите это.
Но почему бы не зафиксировать или сбросить изменения, которые у вас есть? Это гораздо лучший способ удалить его из статуса ... Также имейте в виду, что любой свежий клон вашего репозитория должен будет добавить его
.gitignore
, что может раздражать.источник
got rm --cached .gitignore
, наверное , нужно будет удалить его отдельно от git .Вы можете добиться этого, записав это в свой файл .gitignore. Он
*
добавит все в список игнорирования, а затем!.gitignore
удалит файл .gitignore из списка игнорирования.источник
*
проигнорирует все. Включая.gitignore
файл..gitignore
файл из кодовую (добавляя его к себе, что на самом деле не имеет смысла, но кто я такой, чтобы судить). Здесь я вижу предложение, которое гарантирует, что файл никогда не игнорируется, что, в свою очередь, означает, что он существует ( добавлен в) кодовую базу