Как Gitignore двоичные файлы?

Можно ли gitigonre двоичные файлы, прослушивая их? К сожалению, у меня есть Zend Encoded PHP файлы. Git говорит, что это двоичные файлы. Но у меня также есть PHP-файлы, которые не закодированы. Можно ли gitignore только двоичные файлы PHP?бинарный PHP-файл

0

Решение

Можно ли 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 файлы для игнорирования дополнительных файлов, которые в настоящее время не отслеживаются, но не игнорируются и вызывают жалобы.

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]