Ни один. Используйте Присяжный острослов . Путем разделения внутренней логики от логики дисплея Вы создадите код, который намного более прост поддержать. (Не берите путь старой шаблонной системы PHPLIB, которая попробовала к абсолютно отдельному PHP и HTML - это требует, чтобы логика дисплея была смешана с Вашей логикой основного бизнеса, и очень грязно.), Если абсолютно необходимо генерировать отрывки HTML в коде PHP, используйте 2-й метод, но передайте переменную Присяжному острослову.
Обычная конечная косая черта, когда добавляет подмодуль :
Когда вы используете git add для подмодуля, убедитесь, что у вас нет хвостовой косой черты.
> git add local/path
-- adds the submodule
> git add local/path/
-- adds all the files in the submodule directly into your repository, big no-no
Публикация в общедоступном репозитории без понимания моего git config user.name
неверна.
Это означает, что публичное репо теперь получает имя (и адрес электронной почты), которое я бы предпочел вообще не публиковать. Если это репо реплицируется, ... уже слишком поздно.
Вот почему я предпочитаю, чтобы мое имя пользователя отображалось в моей командной строке git, то есть вместо этого:
MY_HOSTNAME /c/Prog/myGitProject (master)$
Я вижу это:
MY_HOSTNAME /c/Prog/myGitProject (master) VonC $
Я знаю, кто я, с самой первой команды, которую набираю в этом сеансе Git bash!
Один из моих самых неприятных моментов с репозиторием git, хотя он больше о sed:
Однажды я делал найти ... -exec sed -i ...
операция в подкаталоге моего репозитория. Я сначала протестировал его без -i
, отвлекся, вернулся и смог переключиться в верхний каталог в моем репо перед его запуском. Теперь все важные файлы git доступны только для чтения, но sed -i
по умолчанию перетасовывает файл путем переименования, а затем записывает обратно в оригинал, поэтому он отлично работает с файлом только для чтения, таким как объекты git . Замена не была обратимой, и мне пришлось восстанавливать репозиторий путем клонирования и выборки от кого-то, кто отслеживал мой как удаленный.
Я даже на мгновение не подумал, что sed будет работать с файлами, доступными только для чтения. Мораль истории: используйте sed -i -c
, который копирует файл, а затем пытается перезаписать оригинал.
Службы Windows - это уровень над процессами; Чтобы быть службой, приложение должно подключиться к диспетчеру управления службами и объявить, какие службы доступны. Это соединение обрабатывается в библиотеке ADVAPI32.DLL. Как только это соединение установлено, библиотека поддерживает поток, ожидающий команд от диспетчера управления службами, который затем может запускать и останавливать службы произвольно. Я не верю, что процесс должен завершаться после завершения последней службы в нем. Хотя это обычно и происходит, окончание связи с диспетчером управления службами, которое происходит после того, как последняя служба переходит в состояние «остановлено», может произойти значительно раньше, чем процесс фактически завершится, высвободив все ресурсы, которые он еще не освободил явно. .
API службы Windows включает функциональные возможности, позволяющие получить идентификатор процесса для процесса, в котором размещена служба. В одном процессе может размещаться множество служб, поэтому процесс может фактически не завершиться, когда интересующая вас служба завершит работу, но вы должны быть в безопасности с SQL Server. К сожалению, .NET Framework не предоставляет эту функциональность. Однако он предоставляет дескриптор службы, которую он использует для внутренних вызовов API, и вы можете использовать его для выполнения собственных вызовов API. Затем с помощью P / Invoke вы можете получить идентификатор процесса процесса службы Windows, и оттуда, при условии, что у вас есть необходимое разрешение, вы можете открыть дескриптор процесса, который можно использовать, чтобы дождаться его завершения. exit.
Примерно так:
Работа, работа, работа ...
git commit
Работа, работа, работа ...
git commit
Хм ... время интегрироваться
git rebase -i origin/master
Что? Конфликты? Давайте начнем снова
git reset --hard origin/master
Cry cry cry ...
Git позволяет стереть вашу местную историю без сожалений. Самая большая проблема в том, что вы - подстраховка.
Осознавать, что вы забыли запись в .gitignore
, только когда у вас есть совпадения, разбросанные по множеству веток.
Если забыть, что git add не добавляет того, чего нет ...
git add. git commit git status // привет! почему он не зафиксировал мои удаления? Ах да, глупый я git add -u git commit --amend
git список веток
, вы получите новую ветку под названием list
, но если вы выполните git stash
, вы получите свое рабочее пространство в спрятанном виде; для тайника вам понадобится список
, если вам нужен список ... Возможно, скоро ...