Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Сеть > git для проекта


Автор: mstdmstd 23.2.2016, 22:24
 Всем привет,
 В доках по управлению git-ом если нужно выложить локальный проект на bitbucket предлагают команды :  
Код

git init

git add

git commit -m "Adding all project files as the first commit..."

git remote add origin https://[email protected]/bitbucketusername/repositoryname.git


Проект состоит из частей main, staging, bitbucketusername...
Части main, staging под ftp логином
В команде 2 разработчика причем один из них  работает с локальной версией а второй только на сервере
Подскажите как лучше организовать versioning для всего этого?
Можно ссылочку если это где-то описано...

  Спасибо!

Автор: leniviy 24.2.2016, 11:24
Сумбурное описание.
>Проект состоит из частей main, staging, bitbucketusername...
Что в данном случае "bitbucketusername" вообще не понятно.
Допустим, main и staging - это просто разные версии одного проекта. main - экспериментальная, а staging - уже протестированная и готовая к поставке.

Ясно только, что git и вообще системы контроля версий вам не знакомы. Поэтому вот ссылка, которая вам подходит: https://ru.wikipedia.org/wiki/%D0%A1%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0_%D1%83%D0%BF%D1%80%D0%B0%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D1%8F_%D0%B2%D0%B5%D1%80%D1%81%D0%B8%D1%8F%D0%BC%D0%B8

В этих системах есть т.н. ветки "branches", которые отходят от общего ствола "trunk", который в принципе тоже ветка (в git он называется "master"). История изменений в разных сохраняется независимо, но можно импортировать изменения из одной ветки в другую.

В вашем случае надо обозвать "main" веткой "master", а "staging" - "staging". Пусть оба разработчика вносят изменения в свою ветку, а второй периодически импортирует их из master в staging.


Этот ответ добавлен с нового Винграда - http://ru.vingrad.com/git-dlya-proyekta-id56ccb287ae20153e2c8b4567#findElement_E7045_56cd68d9ae20157c0cb26739_0

Автор: Sartorius 24.2.2016, 13:00
Цитата(leniviy @  24.2.2016,  12:24 Найти цитируемый пост)
Что в данном случае "bitbucketusername" вообще не понятно.

Судя по URL origin-а из git remote это именно имя пользователя smile

Автор: _zorn_ 24.2.2016, 18:53
Цитата(mstdmstd @  24.2.2016,  05:24 Найти цитируемый пост)
Части main, staging под ftp логином

Скрещиваем ужа с ежом...
Забудьте ФТП как страшный сон и переучивайтесь под гит. Только конечно нужно самому в этом разобраться.
http://git-scm.com/book/ru/v1

Если переучивание не подходит - разные ФТП аккаунты в разные папки и потом сами е... тр... разбирайтесь как это все дело смёрджить.
Как вариант (если вы этим безобразием занимаетесь) несколько ремотов у себя в репе с соответствующими ветками в которые подтягиваете то что навалили по фтп. 
Потом мерджите это в битбукетовскую ветку и вываливаете это туда.

Код

git add remote main ftp://mainuser@pass:server/path
git add remote staging ftp://staginguser@pass:server/path
git checkout -b main
git pull main
git checkout -b staging
git pull staging

Код

git checkout master
git merge staging 
git push origin

В таком варианте еще пару костылей надо задействовать, чтобы при заливке файлов по фтп автоматом делалось что то вроде git add -A && git commit -m 'Uploaded some files'
Ну и настрого запретить удалять папку .git оттуда (правами можно разрулить).
Проще деволоперов гиту научить чем костылей наворачивать...

ЗЫ. Вобщем сделать можно, но проще разобраться с гитом и сами поймете что ФТП нафиг не сдался.

Автор: Envy 25.2.2016, 11:54
После освоения азов, я бы посоветовал еще почитать про https://habrahabr.ru/post/106912/ и https://about.gitlab.com/2014/09/29/gitlab-flow/. Мы вполне успешно используем (5+ человек в команде). Сейчас переезжаем потихоньку с git-flow на gitlab-flow

Этот ответ добавлен с нового Винграда - http://ru.vingrad.com/git-dlya-proyekta-id56ccb287ae20153e2c8b4567#findElement_E7045_56cec134ae2015f004b26739_0

Автор: mstdmstd 25.2.2016, 18:29
Спасибо, за мнения и за ссылки, хотя и не все мне было понятно...
С git-ом я ранее работал, но его настраивали другие спецы, а я подключался позже.
Сейчас у меня в проекте на гите есть 2 ветки master, staging - первая это рабочая, а вторая для разработчиков.
Ранее, я работал в проекте со схожими 2-я ветками и там я локально настраивал хостинг и при необходимости работать с одной из веток
я локально переключался командами
Код

git checkout -b staging   // переключиться на другую ветку 
git pull staging                // обновить у себя все изхменнеияч с ветки  


если мне не изменяет память...

Если была необходимость работая с веткой и имея изменения в этой ветке, переключиться на другую ветку, то я делал стеширование на этой ветке и 
Код

git checkout  -b  main


И в этой связи у меня вопрос, а не удобнее ли иметь локально 2 разных хостинга : один для работы только в master,  а другой только для работы в staging?
Или это вызовет проблемы ?

Автор: _zorn_ 12.3.2016, 07:26
Цитата(mstdmstd @  26.2.2016,  01:29 Найти цитируемый пост)
С git-ом я ранее работал, но его настраивали

Его не нужно настраивать, его нужно понимать. Вы наверное хотели сказать что вам развернули репу и дали ТХТ с инструкциями как с ней работать ?
Цитата(mstdmstd @  26.2.2016,  01:29 Найти цитируемый пост)
Сейчас у меня в проекте на гите есть 2 ветки master, staging

Цитата(mstdmstd @  26.2.2016,  01:29 Найти цитируемый пост)
Ранее, я работал в проекте со схожими 2-я ветками

Разберитесь что такое "ветка" в определении гит. Просто дальше вы все в кучу мешаете.
Цитата(mstdmstd @  26.2.2016,  01:29 Найти цитируемый пост)
то я делал стеширование

Это я вообще редко делаю. Например когда быстро надо какой нибудь мелкий баг в мастере поправить.

Цитата(mstdmstd @  26.2.2016,  01:29 Найти цитируемый пост)
локально 2 разных хостинга

На словосочетании "локальный хостинг" у меня взорвался мозг.

Цитата(mstdmstd @  26.2.2016,  01:29 Найти цитируемый пост)
 один для работы только в master,  а другой только для работы в staging?

С таким восприятием ситуации, зачем вам гит ?
С другой стороны, кто вам мешает сделать два локальных репо в разных папках. Переключиться на нужные ветки в каждом из них. И настрого СЕБЕ запретить использовать checkout на другие ветки.
Хрень в итоге получится. Вы сами запутаетесь в своей же паутине.

Первое - гит ЛОКАЛЬНЫЙ репозиторий. Как ты с ним будешь обращаться зависит только от ТЕБЯ.
Другой вопрос как изменения выкладывать. Тут уже всякие корпоративные политики и т.п.

Вот эту простую вещь осознай и не будет глупых вопросов

Добавлено через 3 минуты и 40 секунд
ЗЫ. "гит репозиторий" только звучит страшно, на самом деле это папка .git в проекте  smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)