1. Задавайте здесь вопросы о коде, которые не подходят в другие разделы, такие как:
    Дизайн > Верстка
    PHP > Как сделать на PHP
    Скрыть объявление

Вопрос о Гитхабе

Тема в разделе "Web Coding", создана пользователем Denixxx, 14 окт 2014.

Модераторы: latteo
  1. Denixxx

    Denixxx

    Регистр.:
    7 фев 2014
    Сообщения:
    247
    Симпатии:
    196
    Здравствуйте.
    Прошу откликнуться знатоков Гитхаба.
    Есть 2 проекта — 1 базовый, другой расширенный.
    Первый проект самостоятелен.
    Во втором проекте примерно 50% кода первого, почти без изменений.
    Остальное — в первом проекте не используется.
    Как вести на Гитхабе второй проект, чтобы туда автоматом инклюдился, как библиотека, первый проект, со всеми изменениями? Сейчас копирую всё, но при обновлении проекта № 1 сложно отслеживать связи.
    Хотелось бы автоматом.
     
  2. Girt

    Girt Постоялец

    Регистр.:
    11 фев 2012
    Сообщения:
    87
    Симпатии:
    62
    Git поддерживает submodules.
    Т.е. папки можно сделать "ссылками" на другой проект.
     
    Roman Vebs, unpunk и Denixxx нравится это.
  3. Denixxx

    Denixxx

    Регистр.:
    7 фев 2014
    Сообщения:
    247
    Симпатии:
    196
    Мне кажется, это всё-таки не субмодуль. Я не могу запихнуть проект ссылкой в папку, она главная и для другого проекта.
    Скорее, симлинки должны быть не на проект, а на конкретные файлы и папки другого проекта.
    Такое возможно?
     
    pozhisni нравится это.
  4. Girt

    Girt Постоялец

    Регистр.:
    11 фев 2012
    Сообщения:
    87
    Симпатии:
    62
    Последнее редактирование модератором: 15 окт 2014
    Denixxx нравится это.
  5. Denixxx

    Denixxx

    Регистр.:
    7 фев 2014
    Сообщения:
    247
    Симпатии:
    196
    Главное чтоб оно было. А уж описать файлы проекта, автоматизировать с помощью бат-файла или другого скрипта уже можно, ведь делаем 1 раз.
    По ссылке, я правильно понял — вести в 1 репо ветки?
    А как тогда из базовой системы коммитить изменения в другую?

    //Upd 1
    И мне всё равно кажется что это не выход.

    Мне кажется как-то так должно быть:
    1. Базовый и расширенный репозиторий связываются таким образом, что совпавшие файлы коммитятся в оба репо.
    2. Делается список исключений файлов — какие файлы даже если совпали, всё равно считаются разными.
    3. Теперь коммитим в базовый или в основной функционал — если файлы «базовые», попадают в оба репо.

    Теперь не важно будет, с каким репозиторием работаем — оба получают изменения в базовом функционале
    Ну вот, определились кажись. Теперь надо подумать — как? Хотелось бы средствами гита самого, но если нельзя им, то шеллом.

    //Upd 2
    Причём если пп. 2 и 3 ясно как делать (2 — .gitignore, 3 — следствие 1 и 2), то п.1 пока не понятно как.

    //Upd3
    Читаю интерактивный курс по Гит. Кажется то что нужно может делать команда rebase
     
    Последнее редактирование: 16 окт 2014
  6. kanaps

    kanaps Создатель

    Регистр.:
    19 ноя 2013
    Сообщения:
    17
    Симпатии:
    9
    не понял 100% что нужно, но возможно такое решение подойдёт:

    /.гит - мой проэкт -настроен под мой гит.
    /либ-1/.гит - и настроен на вытаскивание обновляемого проекта

    т.е. когда нужно обновить базу, то делаю это с папки /либ-1/
    когда занимаюсь своим проектом, то работаю с корня.

    Это то, что ты хотел?
     
  7. Denixxx

    Denixxx

    Регистр.:
    7 фев 2014
    Сообщения:
    247
    Симпатии:
    196
    Нет, не то.
    Нужно вести 2 репозитория в 1 папке, но при этом не менять структуру файлов.
    Кажется, с Гитом это невозможно.
     
  8. kanaps

    kanaps Создатель

    Регистр.:
    19 ноя 2013
    Сообщения:
    17
    Симпатии:
    9
    Вариант бранчей подходит?
    добавить 2 удалённых репозитория:

    бранч - база - базовый - обновляеммый
    мастер - для своей разработки...

    когда хотим обновить, то переходим на бранч база, делаем пулл с второго удалённого репозитория.
    переходим на мастер,
    делаем merge с базой.

    подойдёт?
     
  9. Denixxx

    Denixxx

    Регистр.:
    7 фев 2014
    Сообщения:
    247
    Симпатии:
    196
    И каждый раз гит будет при переходе с ветки на ветку сносить и восстанавливать пол-движка?
    Это не кошерно как-то.
    К тому же мы не достигнем первоначальной цели: если в проекте № 1 обновились файлы, они должны будут автоматом обновиться и в проекте №2.
     
    Последнее редактирование: 8 ноя 2014
  10. kanaps

    kanaps Создатель

    Регистр.:
    19 ноя 2013
    Сообщения:
    17
    Симпатии:
    9
    и да и нет :) да, так как он будит временно прятать главное состояние, если проэкт живой, то на сервере не стоит этого делать, но можно на компе разработчика..
    при merge гит будит склеивать обновление и рабочую систему