2013-03-06 2 views
0

Я один разработчик, и у меня есть машина для машинного девайса. Я развиваюсь в мастер-отрасли. Когда мне нужно нажать на prod, мне нужно исключить некоторые файлы. Я не могу добавить их в .gitignore, потому что он делает их незатронутыми.Как развернуть с помощью git?

Как я могу это сделать?

ответ

1

мерзавца обновление индекс --assume-неизменным путь/

От git-update-index людей страницы:

Если указаны эти флаги, имена объектов, записанные на пути не обновляется. Вместо этого эти параметры устанавливают и отменят бит «предполагать неизменный» для путей. Когда бит «принять неизменный» включен, git перестает проверять файлы рабочих деревьев на предмет возможных модификаций, поэтому вам нужно вручную отключить бит, чтобы сообщить git, когда вы меняете рабочий файл дерева. Это иногда полезно при работе с большим проектом в файловой системе с очень медленным системным вызовом lstat (2) (например, cifs).

Эта опция также может использоваться как механизм грубого файлового уровня для игнорирования незафиксированных изменений в отслеживаемых файлах (сродни тому, что делает .gitignore для файлов без следа). Git не удастся (изящно), если ему нужно изменить этот файл в индексе, например. при слиянии в фиксации; таким образом, в случае, если файл с необработанным файлом будет изменен вверх по потоку, вам придется обрабатывать ситуацию вручную.

2

Я не уверен, что правильно понял ваш вопрос, но вы не можете (не должны) использовать Git для развертывания приложения.

Git - это система управления распределенными источниками, а не система развертывания.

Если вы ищете средства развертывания я рекомендовал бы не проверить (не каламбур) следующее:

  • InnoSetup - легко учиться/использования, но не очень мощный (не MSI)
  • NSIS - The Instal System Nullsoft Scriptable, также довольно легко, чтобы узнать (не MSI)
  • WiX - действительно мощный, но довольно крутой кривой обучения
  • InstallAware - коммерческое программное обеспечение, но имели свободный ограниченную версию
  • InstallShield - коммерческое программное обеспечение, довольно мощный, графический интерфейс
+0

Можете ли вы посоветовать некоторые инструменты развертывания? – Erik

+0

@ Erik, пожалуйста, см. Обновление ответа –

1

Git не является инструментом развертывания, но вы можете легко принять его на работу следующим образом:

  • , когда вы нажимаете на пульте дистанционного управления, его рабочий каталог будет обновлен.

Таким образом, с помощью push вы можете обновлять файлы на сервере.

Вот процедура:

Создание двух репозиториев: repoDev (здесь вы работаете), repoDeploy (это репо на сервере)

$ git init repoDev 
//add some commits to your repoDev 

$ git init repoDeploy 

Внутри repoDeploy выполнения:

//in repoDeploy 
$ git config receive.denyCurrentBranch ignore 
$ git config core.worktree ../ 

Вышеуказанные команды определяют, что при нажатии на repoDeploy, его рабочий прямой ory будет обновляться с вашим нажатием.

repoDev Настройка:

//in repoDev 
$ git remote add deploy URL-of-repoDeploy 

Нажмите:

//in repoDev 
//commit some changes 
$ git push deploy master 

Рабочий каталог repoDeploy должен быть обновлен.

Использование различных ветвей для ваших prod и dev средах должно решить проблему.

Работайте со своей версией dev в разделе dev, а ваша версия prod должна перейти в prod филиал.

Если вы хотите, чтобы подтолкнуть dev ветвь к серверу прод выполнить:

$ git checkout master 
$ git merge dev 
$ git push deploy master 

Может быть, вы также можете установить ветвь по умолчанию на repoDeploy, таким образом, что:

git push deploy prod 

будет Извлечь файлов в рабочем каталоге, используя prod филиал. Но я не проверял.

Смежные вопросы