Можно ли gitigonre двоичные файлы, прослушивая их? К сожалению, у меня есть Zend Encoded PHP файлы. Git говорит, что это двоичные файлы. Но у меня также есть PHP-файлы, которые не закодированы. Можно ли gitignore только двоичные файлы PHP?
Можно ли gitigonre двоичные файлы, прослушивая их
Не напрямую, нет.
Правила игнорирования Git, как и многие вещи в Git, сложны; но есть две простые части:
любой отслеживаются файл никогда не игнорируется Git определяет несопровождаемый файл как файл, который находится в работа дерево но не в индекс, поэтому отслеживаемый файл — это файл, который находится в индексе. (Если он находится в индексе, а не в рабочем дереве, он отслеживается, но также удаляется. Конечно, для этого также необходимо определить, что индекс а также работа дерево есть, но для этого ответа я просто оставлю их здесь неопределенными.)
Для каждого неотслеживаемого файла Git может пожаловаться на это:
Untracked files:
(use "git add <file>..." to include in what will be committed)
foo.ext
или, конечно же, не жалуются на это; а также git add .
Затем можно либо добавить его, либо, конечно, не добавить его. Обратите внимание, что после добавления файл теперь отслеживаются и игнорировать записи не может повлиять на него, пока он не станет несопровождаемый еще раз (что достигается путем удаления файла из индекса — состояние индекса не является постоянным и постоянным, но оно является сложный, и удаление чего-то, что (а) отслеживается и (б) было совершено, имеет последствия).
Это второй элемент, который контролируется .gitignore
записи: будет Git жаловаться на эти файлы, и будет git add .
добавить их, чтобы они стали отслеживаться? Чтобы узнать, Git прочитает .gitignore
файлы (и .git/info/exclude
а также $HOME/.config/git/ignore
-увидеть Гитиньор документация для дополнительных деталей).
Записи в .gitignore
являются списками имен файлов, путей к файлам и / или образцы шара лайк *.ext
, Они смотрят только на название файла, а не содержание.
Вы могли бы написать программу, которая пишет .gitignore
файлы на основе содержимого файла, что я имею в виду под не напрямую выше: вы запустите свою программу, и она обновит любую .gitignore
файлы для игнорирования дополнительных файлов, которые в настоящее время не отслеживаются, но не игнорируются и вызывают жалобы.
Других решений пока нет …