Есть ли способ пометить файл как недоступный для Git, чтобы он не мог появиться на GitHub?
Во-первых, нет никакого способа, чтобы некоторые файлы и коммиты были видны в вашем локальном Git-репозитории, но как-то не видны в GitHub; если у вас есть файл, зафиксированный в Git, он появится в GitHub.
Во-вторых, не существует простого и практичного способа пометить отдельный файл как «недоступный». Но, безусловно, есть способ игнорировать файл в репозитории Git: добавив файлы (включая их относительный путь, если необходимо), в файл .gitignore
:
Файл .gitignore
определяет намеренно неотслеживаемые файлы, которые Git должен игнорировать. Файлы, уже отслеженные Git, не затрагиваются; см. примечания ниже для деталей.
Создать простой .gitignore
довольно просто, так как это простой текстовый файл. Так, например, если бы в вашем корне был файл config.php
вы бы сделали это; при условии, что вы используете PHP, но концепция применима для любой установки. Также я использую Nano в качестве моего текстового редактора в этом примере, но не стесняйтесь использовать любой текстовый редактор, который вы обычно используете для этого:
nano .gitignore
И просто добавьте это имя файла в этот файл:
config.php
Сохраните его, и теперь Git просто проигнорирует этот файл.
Тем не менее, что мне нравится делать для таких настроек, как это - держать пример конфигурации / примера в чистом виде от деликатных спецификаций в репозитории, так что у меня есть некоторая ссылка на то, что формат файла конфигурации - это файл с именем примерно так:
config.SAMPLE.php
Таким образом, вы точно знаете, как настроить файл config.php
через config.SAMPLE.php
и вы можете быть уверены, что Git никогда не прикасается к самому config.php
.
Кроме того, если вы планируете демонстрировать свой код, вы должны ожидать, что кто-то попытается взять этот код и каким-то образом реализовать его в своей системе. Помните, что мы не вы, и без примера файла конфигурации в вашем репо, люди не будут действительно понимать, как реализовать код самостоятельно. Черт возьми, они могут даже подумать, что вы не компетентны, потому что вы не предоставили базовый пример конфигурации.