.gitignore не игнорирует файлы
Мой .gitignore файл игнорируется, и файлы, которые следует игнорировать, все еще видны.
[email protected] ~/workdir % git status
# On branch master
# Changed but not updated:
# (use "git add <file>..." to update what will be committed)
# (use "git checkout -- <file>..." to discard changes in working directory)
#
# modified: .htaccess
# modified: application/controllers/statistics.php
#
no changes added to commit (use "git add" and/or "git commit -a")
[email protected] ~/workdir % cat .gitignore
.htaccess
application/config/config.php
application/config/database.php
[email protected] ~/workdir %
Файлы находятся в управлении версиями, но с разумными изменениями я не хочу нажимать. git rm... не является вариантом, потому что файлы должны находиться в файле управления версиями (с другими настройками в файлах). Я просто не хочу вносить мои изменения в эти файлы.
Ответы
Ответ 1
Игнорирование файлов в git не означает, что вы их не нажимаете. Это означает, что вы не будете контролировать их версию. Если вы не хотите толкать, я предлагаю вам создать локальную ветвь, которая будет содержать материал для локального компьютера, а затем слить необходимые изменения в ветку, которую вы нажмете на удаленный.
Я думаю, что вы уже add
редактировали ваши файлы и теперь пытаетесь их игнорировать.
Ответ 2
У меня была такая же проблема: мне нужен другой файл .htaccess для каждого репозитория, тогда я не мог, потому что файл htaccess уже был добавлен в репозиторий. Теперь он работает, я могу изменить любой файл .htaccess из любой версии, не получив git нажав их. Марк прав, когда он говорит: "Сначала вам нужно удалить его, прежде чем его можно будет проигнорировать. Это можно сделать с помощью git rm".
i продолжался в следующем порядке:
- зарезервируйте файл .htaccess где-нибудь
- удалить файл .htaccess с помощью git rm.htaccess
- зафиксировать это изменение (удаление .htaccess)
- нажмите (git push)
это, очевидно, удалит ваш .htaccess файл
- затем отредактируйте .gitignore и добавьте /.htaccess
- commit, затем нажмите его
- заново создайте файл .htaccess, восстановив предыдущую резервную копию.
тогда вы закончите: любые изменения, которые вы вносите в .htaccess, больше не будут толкаться. Жесткая часть - порядок шагов...
надеюсь, что это ясно.
Ответ 3
после отмеченных здесь шагов anybug my git все еще отслеживал .htaccess, и это помогло:
git update-index --assume-unchanged .htaccess
Чтобы вернуться назад:
git update-index --no-assume-unchanged .htaccess
Ответ 4
Поскольку вы хотите:
- сохранить
.htaccess
в репозитории Git (no git rm
)
- имеют локальные конфиденциальные данные в нем
используйте фильтр, который будет:
- во время этапа проверки заполните
.htaccess
с личными данными
- во время фазы фиксации очистите
.htaccess
от всех конфиденциальных данных
![content filter driver]()
вы можете затем зашифровать файл, чтобы ваше smudge script:
- будет единственным, чтобы расшифровать
- используйте, чтобы завершить классический (и нажал/вытащил) файл .htaccess.
Вы можете переименовать зашифрованные разумные данные в специальную ветку, которую вы не будете нажимать.
Даже если вы каким-то образом нажмете этот файл, ущерб будет ограничен, так как только ваша рабочая станция имеет закрытый ключ, необходимый для дешифрования указанного файла.
Ответ 5
Предположим, что ниже приведено содержимое файла .gitignore
. Здесь .htaccess
находится в корневом каталоге проекта.
/.htaccess
application/config/config.php
application/config/database.php
Запустите следующую команду, чтобы игнорировать файлы .htaccess
, config.php
и database.php
.
[email protected]:work-dir$ git update-index --assume-unchanged .htaccess
[email protected]:work-dir$ git update-index --assume-unchanged application/config/config.php
[email protected]:work-dir$ git update-index --assume-unchanged application/config/database.php
Если вы хотите снова начать отслеживать его:
[email protected]:work-dir$ git update-index --no-assume-unchanged path/to/file
например.
[email protected]:work-dir$ git update-index --no-assume-unchanged .htaccess
Ответ 6
Кажется, что файл .htaccess
уже добавлен в элемент управления версиями. Сначала вам нужно удалить его, прежде чем его можно будет игнорировать. Это можно сделать, используя git rm
Ответ 7
Я делаю это все время. Я начинаю с файлов конфигурации в своем репо, а потом решаю, что я их не хочу там.
Вы можете удалить что-то из своего репо с помощью
git rm --cached <<filename>>
Ответ 8
Этот прослушивал меня несколько дней. Файл .htaccess
уже находится под управлением версии и был изменен.