Git для веб-разработки (метод процедуры) - PullRequest
8 голосов
/ 04 мая 2011

Мне интересно, каков ваш метод веб-разработки с использованием Git?

  1. Когда вы закончите кодирование, вы просто перезаписываете файлы с FTP на живой сервер?

  2. Как git обрабатывает номер версии того же проекта? как v1, v1.5 и т. д.

  3. Допустим, 2 человека, работающие над проектом на работе (в одном офисе), как вы работаете вместе? Должен ли я постоянно просить их предоставить мне готовый источник (сохранить на USB?) Для слияния?

  4. Могут ли два человека работать над одним проектом на одном сервере? Разве это не будет проще, чем вопрос 3?

Ответы [ 3 ]

8 голосов
/ 04 мая 2011

Идея Git заключается в том, что он позаботится обо всем этом для вас.

  1. Когда вы пишете код, вы фиксируете свой код и можете отправить его на сервер. Git отслеживает изменения, поэтому их легко откатить до предыдущей версии.
  2. Он отслеживает версии файлов по мере их изменения, так что вы можете легко отменить любые изменения, которые были сделаны в прошлом, см. теги для получения дополнительной информации.
  3. NO. Вы можете отправить свои изменения на сервер, а другой человек может получить эти изменения. Некоторое слияние должно произойти, но с git это довольно просто. Нет необходимости передавать файлы от одного разработчика к другому. Ветвление и слияние обсуждается здесь .
  4. Да. Это идея.

Чтобы лучше понять концепции, лежащие в основе распределенной системы контроля версий, вы можете прочитать это руководство Джоэля Спольски . Речь идет о Mercurial, но вы найдете концепции очень схожими, и это, вероятно, лучший учебник, написанный на эту тему в Интернете.

0 голосов
/ 04 мая 2011

google "git flow", он показывает вам способ управления работой и освобождения, когда вы хотите.

Для развертывания через ветку см .:

Развертывание проекта с помощью Git push

0 голосов
/ 04 мая 2011

Вот как бы я это сделал.

Каждый разработчик имеет свой собственный репозиторий git для разработки своего кода. Вы, как слияние, обладаете третьим хранилищем, и в этом хранилище есть отдельные ветви для каждого разработчика, для вашей тестовой системы и вашего рабочего сайта.

Ваши разработчики могут отправлять свои изменения вам, или вы можете извлекать их из них в ветки специально для них. У вас есть ветка, которой вы управляете, которая содержит объединенный код в состоянии для тестирования. Вы либо используете git-cherry-pick, либо, может быть, просто git-merge для внесения своих изменений в свою ветку тестирования, когда вы тестируете вещи (и, возможно, вносите свои собственные изменения - или отправляете отчеты об ошибках разработчикам, и вы повторно включаете их изменения). ). Когда вы счастливы, вы сливаетесь с «производственной» веткой. Обычно это изначально происходит из тестовой ветви, но с изменениями, необходимыми для работающей системы (я всегда нахожу, что есть что-то, даже если это просто имя базы данных и пароль).

Обычно я использую ловушку git с некоторым кодом, который проверяет, в какой ветке я нахожусь, и затем использую rsync поверх ssh для отправки кода на мой рабочий сайт.

#!/bin/bash

branch=$(git branch | sed -n s/^\*\ //p)
version=$(git describe --tags)
cd "$git rev-parse --show cdup)"

if [ "$branch" == "production" ]; then
    echo "?php echo '$version';?>" > web/version.inc
    rsync -axq --delete web/ site:public_html/
fi
...