INDEX » Блог » WEB-программирование » Часть 1. Перенос текущего проекта под контроль версий GIT. Создание репозитория git. Создание публичного репозитория git для проекта. Работа с репозиторием разработки и сохранение изменений в публичный репозиторий.

Часть 1. Перенос текущего проекта под контроль версий GIT. Создание репозитория git. Создание публичного репозитория git для проекта. Работа с репозиторием разработки и сохранение изменений в публичный репозиторий.

Самую помощь в том, чтобы разобраться с git оказали авторы следующих статей:

1. Что имелось изначально.

Такой стандартный вариант соло-разработки. Боевой проект, рабочая копия на том же сервере, рабочая копия на домашнем компьютере.

Собственно, имею:

  1. Рабочий боевой проект

    По адресу http://mega-project.com/. Который на сервере валяется в /var/www/mega-man/mega-project

    Изначально разработка велась прямо там, по ftp редактировалось, проверялось и вновь редактировалось.

  2. Сервер, на котором валялся проект. Решил сделать копию проекта, где и вести разработку, также доступную извне.

    Скажем, по адресу http://dev.mega-project.com/. В папке /var/www/mega-man/dev-mega-project/

  3. Домашний компьютер, на котором также вертится сервер и разработническая копия проекта.

    В c:\projects\mega-project\. На своем компе захожу на проект с локального хоста по адресу http://mega-project/

2. Установка GIT

Тут проблем быть не должно. У меня под Debian вся установка вылилась в

> apt-get install git

Версия для windows найти также не составило труда.

3. Настройка и синхронизация репозиториев GIT.

Пусть в разработческой (dev) версии проекта последняя версия на текущий момент. Точно такая же копия должна быть в боевой (prod) версии проекта.

Заходим в папку с dev-копией на сервере, создаем пустой репозоторий, добавляем туда все файли из папки проекта, делаем инициирующий коммит.

# Это dev-копия проекта на удаленном сервере.
> cd /var/www/mega-man/dev-mega-project
/var/www/mega-man/dev-mega-project > git init
/var/www/mega-man/dev-mega-project > git add .
/var/www/mega-man/dev-mega-project > git commit -m "Проект создан. Во бля."

Теперь выходим на уровень выше, в папку /var/www/mega-man для создания там же публичного репозитория. То есть репозитория для обмена данными всех наших трех копий. Там по факту не будет файлов проекта, только служебные файлы GIT с историей изменений проекта.

/var/www/mega-man/dev-mega-project > cd ..
/var/www/mega-man > git clone --bare dev-mega-project mega-project.git

Публичный репозиторий для синхронизации проектов готов. В папке /var/www/mega-man/mega-project.git И вроде как там даже уже история файлов имеется.

Для работы с публичным репозиторием: обновлением его из dev-проекта на сервере и наоборот необходимо настроить dev-проект, сообщив ему адрес публичного репозитория:

# Действия производим в папке с dev-проектом
/var/www/mega-man > cd dev-mega-project
/var/www/mega-man/dev-mega-project > git config remote.origin.url "/var/www/mega-man/mega-project.git"

Это сообщит git в нашей dev-копии адрес публичного репозитория origin, который мы только что создали. Теперь после изменения dev-копии проекта будем обновлять публичный репозиторий следующим образом:

# Работаем в dev-проекте
/var/www/mega-man/dev-mega-project > git status # смотрим в какой ветке разработки
/var/www/mega-man/dev-mega-project > # сейчас находимся, пусть в master
/var/www/mega-man/dev-mega-project >
/var/www/mega-man/dev-mega-project > git branch mega-feature # создали новую ветку проекта
/var/www/mega-man/dev-mega-project > git checkout mega-feature # переключилсь в новую ветку
/var/www/mega-man/dev-mega-project >
/var/www/mega-man/dev-mega-project > # тут редактируем проект ...
/var/www/mega-man/dev-mega-project > # при создании ветки в git
/var/www/mega-man/dev-mega-project > # не создается никаких отдельных папок
/var/www/mega-man/dev-mega-project > # с копиями проекта, всю работу делаем
/var/www/mega-man/dev-mega-project > # той же папке с теми же файлами
/var/www/mega-man/dev-mega-project > # git создает и запоминает себе снимок
/var/www/mega-man/dev-mega-project > # master на момент создания новой ветки,
/var/www/mega-man/dev-mega-project > # то есть по адресу http://dev.mega-project.com/
/var/www/mega-man/dev-mega-project > # будут видны текущие правки,
/var/www/mega-man/dev-mega-project > # но это не master версия,
/var/www/mega-man/dev-mega-project > # а наша mega-feature.
/var/www/mega-man/dev-mega-project > # после коммита, то есть
/var/www/mega-man/dev-mega-project > # сохранения изменений в git
/var/www/mega-man/dev-mega-project >
/var/www/mega-man/dev-mega-project > git add .
/var/www/mega-man/dev-mega-project > git commit -m'Сделали мега-фичу'
/var/www/mega-man/dev-mega-project >
/var/www/mega-man/dev-mega-project > # Переключаемся в ветку master
/var/www/mega-man/dev-mega-project > git checkout master
/var/www/mega-man/dev-mega-project > # После этого действия
/var/www/mega-man/dev-mega-project > # и до синхронизации (merge)
/var/www/mega-man/dev-mega-project > # ветки master с новой mega-feature
/var/www/mega-man/dev-mega-project > # по адресу http://dev.mega-project.com/
/var/www/mega-man/dev-mega-project > # увидим версию проекта
/var/www/mega-man/dev-mega-project > # до начала работы.
/var/www/mega-man/dev-mega-project >
/var/www/mega-man/dev-mega-project > git merge mega-feature
/var/www/mega-man/dev-mega-project > # Тут синхронизировали master
/var/www/mega-man/dev-mega-project > # с mega-feature, и теперь по адресу
/var/www/mega-man/dev-mega-project > # http://dev.mega-project.com/
/var/www/mega-man/dev-mega-project > # видим новые фишки
/var/www/mega-man/dev-mega-project >
/var/www/mega-man/dev-mega-project > # Теперь с чистой совестью
/var/www/mega-man/dev-mega-project > # выгружаем master в публичный
/var/www/mega-man/dev-mega-project > # репозиторий
/var/www/mega-man/dev-mega-project > git push origin master:master

Теперь, когда другие копии на других компьютерах запросят свежую версию проекта из публичного репозитория, им будет доступна наша мега-фича.

Пока все, однако продолжение следует.


Комментарии


Комментарии с 1 по 10 из 97 | Предидущие | Первые

louis vuitton handbags yayoi kusama
Comment
Unity311
Комментарий №97 : Mon August 18, 2014, 20:32:06
WebProst - DiBlog | Часть 1. Перенос текущего проекта под контроль версий GIT. Создание репозитория git. Создание публичного репозитория git для проекта. Работа с репозиторием разработки и сохранение изменений в публичный репозиторий. <a href=http://www.malpensafiere.com/public/new.asp?id=5224>cheap are louis vuitton handbags leather</a>
[url=http://www.malpensafiere.com/public/new.asp?id=6715] louis vuitton handbags yayoi kusama[/url]

nike free run 2 id
Comment
Sentinel246
Комментарий №96 : Sat July 26, 2014, 14:19:29
<a href=http://www.santiago.org.br/links.asp?id=buy-nikes>buy nikes</a> WebProst - DiBlog | Часть 1. Перенос текущего проекта под контроль версий GIT. Создание репозитория git. Создание публичного репозитория git для проекта. Работа с репозиторием разработки и сохранение изменений в публичный репозиторий. <a href=http://www.santiago.org.br/links.asp?id=cheap-nike-free-run-shoes -for-men>cheap nike free run shoes for men</a>
[url=http://www.santiago.org.br/links.asp?id=nike-free-run-2- id]nike free run 2 id[/url]

Shop Nike Free 5.0 V4 Women's Shoe Black/White-Mel Crush For Cheap
Comment
Verily177
Комментарий №95 : Thu July 24, 2014, 00:18:40
<a href=http://www.eudecido.com/cheap-nike-roshe-run-hyp-womens-shoe-navy darkgreyon-sale-p-79.html>Cheap Nike Roshe Run Hyp Women's Shoe Navy/DarkGreyOn Sale</a> WebProst - DiBlog | Часть 1. Перенос текущего проекта под контроль версий GIT. Создание репозитория git. Создание публичного репозитория git для проекта. Работа с репозиторием разработки и сохранение изменений в публичный репозиторий. <a href=http://www.eudecido.com/discount-2012-nike-free-run-3-women-purpl e-hot-sale-p-20.html>Discount 2012 Nike Free Run 3 Women purple Hot Sale</a>
[url=http://www.eudecido.com/shop-nike-free-50-v4-womens-sho e-blackwhitemel-crush-for-cheap-p-24.html]Shop Nike Free 5.0 V4 Women's Shoe Black/White-Mel Crush For Cheap[/url]

Cheap Oakleys
Comment
Holiday826
Комментарий №94 : Wed July 23, 2014, 05:54:33
WebProst - DiBlog | Часть 1. Перенос текущего проекта под контроль версий GIT. Создание репозитория git. Создание публичного репозитория git для проекта. Работа с репозиторием разработки и сохранение изменений в публичный репозиторий. <a href=http://rocknchair.net/new.asp?id=oakely-sunglasses>Fake Oakley Radar Path</a>
[url=http://www.rocknchair.net/new.asp?id=best-sunglasses]Ch eap Oakleys[/url]

oakley discounts
Comment
Zebra739
Комментарий №93 : Sun July 20, 2014, 02:03:04
WebProst - DiBlog | Часть 1. Перенос текущего проекта под контроль версий GIT. Создание репозитория git. Создание публичного репозитория git для проекта. Работа с репозиторием разработки и сохранение изменений в публичный репозиторий. <a href=http://www.spjimr.org/links.asp?id=oakley-bottlecap>oakley gascan sunglasses cheap</a>
[url=http://www.spjimr.org/links.asp?id=oakley-discounts]oa kley discounts[/url]

Nike Free TR Men Blue Gray
Comment
Griff219
Комментарий №92 : Sat July 19, 2014, 12:38:48
WebProst - DiBlog | Часть 1. Перенос текущего проекта под контроль версий GIT. Создание репозитория git. Создание публичного репозитория git для проекта. Работа с репозиторием разработки и сохранение изменений в публичный репозиторий. <a href=http://www.sgensys.com/nike-free-50-v4-womens-shoe-sport-redwine- p-26.html>Nike Free 5.0 V4 Women's Shoe Sport Red/Wine</a>
[url=http://www.sgensys.com/nike-free-tr-men-blue-gray-p -322.html]Nike Free TR Men Blue Gray[/url]

mens nike free run 3
Comment
Griff216
Комментарий №91 : Fri July 18, 2014, 12:19:53
WebProst - DiBlog | Часть 1. Перенос текущего проекта под контроль версий GIT. Создание репозитория git. Создание публичного репозитория git для проекта. Работа с репозиторием разработки и сохранение изменений в публичный репозиторий. <a href=http://www.gillians.com/images/run.asp?id=cheap-nike-air>cheap nike air</a>
[url=http://www.gillians.com/images/run.asp?id=mens-nike-free -run-3]mens nike free run 3[/url]

Nike Free 5.0 V4 Women's Shoe Wolf Grey/Pink
Comment
Marit978
Комментарий №90 : Thu July 17, 2014, 12:29:09
WebProst - DiBlog | Часть 1. Перенос текущего проекта под контроль версий GIT. Создание репозитория git. Создание публичного репозитория git для проекта. Работа с репозиторием разработки и сохранение изменений в публичный репозиторий. <a href=http://www.sgensys.com/nike-free-tr-men-black-scarlet-p-321.html> Nike Free TR Men Black Scarlet</a>
[url=http://www.sgensys.com/nike-free-50-v4-womens-shoe-w olf-greypink-p-28.html]Nike Free 5.0 V4 Women's Shoe Wolf Grey/Pink[/url]

Shop Nike Free Run + Mens Shoes Red BlackFor Cheap
Comment
Unity960
Комментарий №89 : Wed July 16, 2014, 15:17:08
WebProst - DiBlog | Часть 1. Перенос текущего проекта под контроль версий GIT. Создание репозитория git. Создание публичного репозитория git для проекта. Работа с репозиторием разработки и сохранение изменений в публичный репозиторий. <a href=http://www.eudecido.com/buy-nike-free-cross-country-mens-shoes-bl ack-blue-outlet-sale-p-165.html>Buy Nike Free Cross Country Mens Shoes Black Blue Outlet Sale</a>
[url=http://www.eudecido.com/shop-nike-free-run-mens-shoes-r ed-blackfor-cheap-p-294.html]Shop Nike Free Run + Mens Shoes Red BlackFor Cheap[/url]

Cheap Oakley Sunglasses
Comment
Maaike995
Комментарий №88 : Wed July 16, 2014, 14:06:40
WebProst - DiBlog | Часть 1. Перенос текущего проекта под контроль версий GIT. Создание репозитория git. Создание публичного репозитория git для проекта. Работа с репозиторием разработки и сохранение изменений в публичный репозиторий. <a href=http://www.spjimr.org/links.asp?id=oakley-rx-sunglasses>oakley rx sunglasses</a>
[url=http://www.spjimr.org/links.asp?id=oakey-sunglass es]Cheap Oakley Sunglasses[/url]


Написать комментарий


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