За последние 24 часа нас посетили 20385 программистов и 1083 робота. Сейчас ищут 784 программиста ...

git, bitbucket, несколько репо в одной директории

Тема в разделе "Версионность, тестирование и развёртывание", создана пользователем Алекс8, 15 ноя 2017.

  1. Алекс8

    Алекс8 Активный пользователь

    С нами с:
    18 май 2017
    Сообщения:
    1.730
    Симпатии:
    359
    В общем с git вообще практически не работал.. ради интереса когда то на гитхабе что то залил.. сделал пуллреквест даже один.. на этом вся моя работа закончилась, так как опыта работы в команде не было - соответственно и контролировать нечего не надо было..
    так что большая просьба разговаривайте как с нубом))

    Смысл в чем.. есть у меня директория на локалке с движком сайта..
    я написал несколько компонентов (плагинов), каждый плагин состоит из
    1. Директории где лежат контроллеры и модель
    2. Файлов локализации которые лежат в другой директории..

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

    и так у меня лежит несколько плагинов в одной директории движка..

    плюс мне надо будет уже в самом репозитарии добавить файл манифеста где будет инфа про установку.. .
    такое вообще возможно?

    или мне лучше мои плагины разложить в отдельные директории с учетом всех моих путей добавить в эту же директорий файл манифеста (установку) плагина и потом уже из всего этого добра делать репозиторий))
     
  2. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.068
    Симпатии:
    1.231
    Адрес:
    там-сям
    Если ты сможешь их развести по разным непересекающимся директориям, это будет лучший вариант. Если это невозможно, то можешь одну репу создать в корне проекта, а пару других в под-директориях. А чтобы они не дублировались, добавь те дочерние папки в .gitignore главной репы.

    У меня есть проект где бОльшая часть папки public принадлежит отдельной репе.
    Код (Text):
    1.  
    2. /
    3.   .git/ - главная репа
    4.   .gitignore - содержит строку с "public"
    5.   app/
    6.   config/
    7.   storage/
    8.   public/
    9.     .git/ - другая репа
    10.     .gitignore
    11.   resources/
    Самый сложным момент был в том, что некоторые вещи из public/ мне таки надо держать в главной репе. Выкрутился помещая эти вещи в .gitignore дочерней репы и делая "git add -f public/thing" в главной.

    Читай про .gitignore, git add --force, git check-ignore

    Повторюсь: лучше такого избегать. Это грязные хаки, а не хорошая практика.
     
    Алекс8 нравится это.
  3. Zuldek

    Zuldek Старожил

    С нами с:
    13 май 2014
    Сообщения:
    2.381
    Симпатии:
    344
    Адрес:
    Лондон, Тисовая улица, дом 4, чулан под лестницей
    Не всегда возможно разносить по разным каталогам, можно заморочиться с симлинками, конечно.
    При этом вести репозитории, как разные проекты в рамках одного общего удобно и иногда крайне необходимо. В частности, при работе над одним проектом команды фронтенд и бэкенд разработки. В моей практике команда фронтенд разработки работает с отдельным репозиторием и может самостоятельно выпускать свои релизы.
     
    Алекс8 и artoodetoo нравится это.
  4. Алекс8

    Алекс8 Активный пользователь

    С нами с:
    18 май 2017
    Сообщения:
    1.730
    Симпатии:
    359
    ребята еще вопросы по поводу git))
    сгенерил я ключи.. добавил публичный ключ в bitbucket
    клонировал репозиторий..
    перешел на dev ветку.. сейчас дамп разверну..
    мне надо будет менять в конфиге домен проекта, так как у меня на локалке он другой, естественно пути менять надо будет и пароли к базе...
    я работаю в netbeans - решил пока командную строку не использовать))
    мне надо установить что бы эти файлы игнорировались? правой клавишей на файл, дальше /Git/Игнорировать/Исключить из фиксации ?? этого достаточно?
    Спасибо)
     
  5. mahmuzar

    mahmuzar Старожил

    С нами с:
    6 апр 2012
    Сообщения:
    4.632
    Симпатии:
    425
    Адрес:
    РД, г. Махачкала.
    Да, достаточно. Плюс ко всему при попытке зафиксировать NetBeans тебе покажет список файлов, там ты можешь убедиться что файл зачеркнут, и не будет зафиксирован.

    А по хорошему их можешь включить в .gitignore
     
    Алекс8 нравится это.
  6. Алекс8

    Алекс8 Активный пользователь

    С нами с:
    18 май 2017
    Сообщения:
    1.730
    Симпатии:
    359
    у меня вопрос за вопросом)
    есть проект над которым нужно поработать, но под винду нет memcached.. поэтому проект надо развернуть на линуксе.
    есть у меня на виртуалке линукс, развернул я там проект.. по ФТП открыл его в нетбинсе.. и тут сразу возник вопрос)) как работать с гитом если проект удаленный у меня..
    только через командную строку на линуксе?
     
  7. mahmuzar

    mahmuzar Старожил

    С нами с:
    6 апр 2012
    Сообщения:
    4.632
    Симпатии:
    425
    Адрес:
    РД, г. Махачкала.
    ну, я софт под линукс какой есть не знаю).
    Я и на винде как то привык уже работать в командной строке (PowerShell).
    А я себе установил под винду этот Memcache)
    Вообще, можно NetBeans настроить и на работу с удаленными репами.
    --- Добавлено ---
    https://netbeans.org/kb/docs/ide/git_ru.html#remote
     
  8. Алекс8

    Алекс8 Активный пользователь

    С нами с:
    18 май 2017
    Сообщения:
    1.730
    Симпатии:
    359
    Этот Memcache есть)) а вот Memcached нет))
     
  9. mahmuzar

    mahmuzar Старожил

    С нами с:
    6 апр 2012
    Сообщения:
    4.632
    Симпатии:
    425
    Адрес:
    РД, г. Махачкала.
    Это разве не одно и то же?))
    Memcache это расширение для php a memcached это сервер.) Вот второй кажется как службу я устанавливал, по какой статье я даже не припомню).
    --- Добавлено ---
    upload_2017-11-15_21-30-22.png
     
    Алекс8 нравится это.
  10. Алекс8

    Алекс8 Активный пользователь

    С нами с:
    18 май 2017
    Сообщения:
    1.730
    Симпатии:
    359
    @mahmuzar да вроде нет.. вроде разные проекты..
    но под php7 я так и не смог запустить..
     
  11. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.068
    Симпатии:
    1.231
    Адрес:
    там-сям
    Есть расширения PHP memcache и memcached, оба они работают сервером memcached.

    Cоединяйся по ssh и работай в командной строке, можно прямо из NetBeans. Ну и раз есть ssh, то логично использовать sftp вместо ftp. Забывай уже про это говно мамонта.

    С виртуалкой есть и такой вариант: настроить "общую папку" с виртуалкой. Реально папка с файлами будет на твоей материнской винде, а в линукс она будет "монтироваться" при старте виртуалки. Будешь продолжать работать с файлами локально, а веб-сервер и пхп под линуксом.
    --- Добавлено ---
    Лично я не использую поддержку git из IDE, или какой-либо GUI-интерфейс к git. Не чувствую такой потребности :) Хотя PhpStorm автоматически настраивается на гит, если обнаруживает его.

    Вот ситуация, изначально описанная в начале темы — с несколькими репами в рамках одной папки проекта, может быть слишком сложной для IDE. На "автоматику" не надо расчитывать, руки должны всё уметь! :)

    Консоль у меня всегда bash (от cygwin), хоть под виндой, хоть под линуксом. Поэтому переходы между локалкой и виртуальным или удалённым хостами у меня происходит "прозрачно", без напряжения мозга на смену контекста. Рекомендую https://cygwin.com/ !
     
  12. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.548
    Симпатии:
    1.754
    Общую папку у меня не получилось поднять (точнее, получилось, но работали сайты, находящиеся в ней, со скоростью варёной черепахи), но лежит копия сайта, который на виртуалке, на основной ОС, как было бы, если бы проект был только удалённым. Все git запускаю из под основной ОС, php storm автоматом закачивает полученные файлы на виртуалку по sftp, для меня получился идеальный вариант.