мерзавец - игнорирует файлы на основе режима

Я решил свою проблему такого же типа. Первый параметр определяет исходное имя класса, а второй параметр определяет новое имя класса функции class_alias. Тогда мы можем использовать эту функцию в условиях if и else.

if(1==1){
  class_alias('A', 'C');
}
else{
  class_alias('B', 'C');
}

class Apple extends C{
      ...
}

Класс Apple распространяется на виртуальный класс «C», который может быть определен как класс «A» или «B» в зависимости от условия if и else.

Для получения дополнительной информации вы можете проверить эту ссылку https://www.php.net/manual/en/function.class-alias.php

10
задан danjarvis 21 October 2009 в 21:11
поделиться

2 ответа

Возможно, вам действительно будет лучше вручную поддерживать gitignore. Вы можете сделать это:

*
!*.*

, чтобы исключить все, затем включить все с ".", Но я подозреваю, что ваши каталоги не имеют расширений. Конечно, отслеживаемые в настоящее время каталоги все равно будут отслеживаться, но если вы добавите новый, git-status не увидит его, и вам придется использовать add -f

Наверное, нехорошо предполагать, что все файлы без расширений в любом случае не должны отслеживаться. Вы можете получить некоторые из них естественным образом - например, README и INSTALL довольно распространены. Гораздо хуже случайно проигнорировать файл, чем также изменить gitignore. Изменение gitignore может занять несколько секунд, но когда вам это понадобится, это будет очевидно.

8
ответ дан 3 December 2019 в 21:21
поделиться

Обычно я справляюсь с этим с помощью хаков с make-файлами. В моем Makefile у меня есть имя исполняемого файла $ (name), а затем я делаю следующее:

#first rule
all: gitignoreadd ... more depends
    ... some commands ...

gitignoreadd:
    grep -v "$(name)" .gitignore > temp
    echo $(name) >> temp
    mv temp .gitignore

gitignoreremove:
    grep -v "$(name)" .gitignore > temp
    mv temp .gitignore

Это правило может быть просто зависимостью от make где-то подходящего. Тогда у вас обычно есть следующее правило «очистить»:

clean: gitignoreremove
   rm *.o *.othergarbagefiles $(name)

Это должно помочь. Это хак, но у меня он работает. Единственное, что вы должны запустить make clean перед изменением имени, чтобы автоматически все очистить.

9
ответ дан 3 December 2019 в 21:21
поделиться
Другие вопросы по тегам:

Похожие вопросы: