Ответы пользователя по тегу Git
  • Как вести параллельную работу с проектом и потом сливать в один?

    dlnsk
    @dlnsk
    ПК Партнер 01.01 -> ПК Поиск -> IBM PC
    1. Вам нужно установить git на хостинге, чтобы делать push локально и затем pull на сервере для переноса сделанных изменений. Если хостинг не позволяет установить git, то можете воспользоваться плагином git-ftp (переносит измененные файлы по ftp)
    2. Делать копию базы можно, но с какого-то момента это становится слишком затратно, да и нужную вам комбинацию данных придется искать. Решается это наполнением базы тестовыми данными (ищите seed в поиске). Развивая проект вы дополняете и сидеры. Это позволяет держать базу в атуальном виде, а также (!) откатываться к предыдущим версиям и там генерировать базу для именно этой версии. Кроме того сидеры позволяют легко экспериментировать, т.к. пересоздание базы занимаетс секунды.
    3. Для изменения структуры базы данных применяются миграции (migration). Это описание того, какие поля, таблицы, индексы добавляются/удаляются, а также трансформирование данных. Создав миграцию локально и протестировав на локальных данных вы переносите ее с помощью git на сервер также, как и весь остальной код. Остается только запустить миграцию на сервере и ваша БД будет трансформирована как вы указали.

    Конечно, многое зависит от того, каким фреймворком вы пользуетесь. Подавляющее большинство позволяют создавать и сидеры, и миграции.
    Чтобы было проще представить, вот ссылка на документацию Laravel по этой теме: https://laravel.com/docs/8.x/migrations
    Ответ написан
    Комментировать
  • Есть ли смысл покупать Fork?

    dlnsk
    @dlnsk
    ПК Партнер 01.01 -> ПК Поиск -> IBM PC
    Если вы используете Sublime Text, то плагин GitSavvy - очень удобное средство. Настолько просто как там не делаются основные операции даже в PHPStorm. Кстати там очень простой способ добавления отдельных изменений в stage, а не целых файлов.
    Для мержинга конфликтов можно использовать любой сторонний продукт для сравнения файлов, например Meld.
    Ответ написан
    Комментировать
  • Как в Git удалить файл из коммита, если уже запушил?

    dlnsk
    @dlnsk
    ПК Партнер 01.01 -> ПК Поиск -> IBM PC
    Если package-lock.json - это новый файл, то ваша команда делает что-то не так... SagePtr уже пояснил выше почему этот файл должен быть в репозитории.
    Если у вас этот файл изменился, то значит ВЫ делаете что-то не так... Скорее всего вы использовали команду npm update вместо npm install. Последняя устанавливает не новые версии пакетов, а именно те, которые указаны в package-lock.json. Это необходимо, чтобы все члены команды использовали одинаковые версии пакетов, иначе - жди неожиданностей.
    Ответ написан
    Комментировать
  • Как лучше выстроить процесс работы через гит если есть develop и master ветки?

    dlnsk
    @dlnsk
    ПК Партнер 01.01 -> ПК Поиск -> IBM PC
    Стандартный в qna ответ про git flow на самом деле не не всегда является верным...
    У вас масштабный проект и вы периодически выкатываете релизы? Возможно вам достаточно использовать упрощенный flow без ветки dev?
    https://qna.habr.com/q/1046166#answer_2047516
    Ответ написан
    Комментировать
  • Как провести решение конфликтов в двух ветках при слиянии посредством через Pull Request?

    dlnsk
    @dlnsk
    ПК Партнер 01.01 -> ПК Поиск -> IBM PC
    Странно что вам в master еще не прилетела какая-нибудь недоделанная фича... ;)

    Давайте ответим на вопрос: Для чего вам нужен dev? На самом деле не для разработки, как вы думаете, а для тестирования фич. Правильно?
    В связи с этим ваша проблема решается следующими шагами:
    1. Переименовать dev в stage (test и т.п.) и забыть что там ведется разработка.
    2. Все фича-ветки должны создаваться от master.
    3. После завершения фичи она мержится в stage и проверяется. Можно даже без PR, т.к. теперь никакой хлам принципиально не может попасть в master.
    4. Если все в порядке, из фича-ветки делаете PR в master.
    5. stage можно иногда просто сносить и пересоздавать с головы master, чтобы история была красивее. ;)

    PS: Это какая-то мания у команд - иметь ветку dev... "Мы же разработкой занимаемся - у нас должна быть ветка dev!". Так что ли?
    Не всякому проекту нужна ветка dev! Точнее так - если у вас есть ветка dev, то у вас должна быть и ветка release и вы должны обновлять приложение большими релизами с определенной подготовкой к ним.
    Ответ написан
    Комментировать
  • Курс или полный гайдлайн по git?

    dlnsk
    @dlnsk
    ПК Партнер 01.01 -> ПК Поиск -> IBM PC
    Комментировать
  • Как удалить коммит в gitLab?

    dlnsk
    @dlnsk
    ПК Партнер 01.01 -> ПК Поиск -> IBM PC
    git reset --hard <последний перед удаляемыми коммит>
    git push -f
    Ответ написан
    1 комментарий
  • Как сделать merge в ветку git-flow?

    dlnsk
    @dlnsk
    ПК Партнер 01.01 -> ПК Поиск -> IBM PC
    А нужен ли вам git-flow?
    Насколько я понимаю, опыта в git у вас почти нет, но вы собираетесь применить сразу энтерпрайз-решение. git-flow подразумевает использование релизов. В связи с этим и строится набор веток и их взаимодействие. В подавляющем большинстве случаев релизы не нужны, а значит и процесс будет другим.
    Упрощенный процесс хорошо расписал опытный человек здесь: https://qna.habr.com/answer?answer_id=1552111#answ...
    Это работает даже если у вас в команде несколько человек, не говоря уже об одном разработчике. Проверено на себе.
    Ответ написан
    Комментировать
  • Как пользоваться git с FTP?

    dlnsk
    @dlnsk
    ПК Партнер 01.01 -> ПК Поиск -> IBM PC
    Ответ написан
    Комментировать
  • Как засунуть коммит в новую локальную ветку и запушить?

    dlnsk
    @dlnsk
    ПК Партнер 01.01 -> ПК Поиск -> IBM PC
    Если у вас уже "есть" коммит, значит но уже лежит в какой-то ветке.
    Создайте новую ветку и сделайте cherry-pick коммита в нее.
    Ответ написан
    Комментировать
  • Как в phpstorm отменить merge?

    dlnsk
    @dlnsk
    ПК Партнер 01.01 -> ПК Поиск -> IBM PC
    1. Откройте панель git.
    2. Правой кнопкой на целевом коммите.
    3. Reset Current Branch to Here...
    В диалоге выбираете тип ресета. Вам, видимо, нужно hard.
    Пушить на github нужно будет с флагом -f
    Ответ написан
    Комментировать
  • Что делать с двумя репозиториями?

    dlnsk
    @dlnsk
    ПК Партнер 01.01 -> ПК Поиск -> IBM PC
    Не вполне понятно что за 2 системы и чем является ваш проект в них...
    Если ваш проект можно назвать плагином для этих систем, то видится три варианта:
    1. Создаете в "системах" папку своего проекта и добавляете ее в .gitignore. Клонируете в папку свой проект и работаете с ним как обычно. Т.е. у вас получается репозиторий внутри репозитория, но они друг про друга не знают.
    2. Сделать ваш проект модулем тех "систем" с помощью git modules со всеми вытекающими.
    3. Оформить ваш проект в виде внешнего модуля (npm, composer и т.п.) и инклюдить его в "системы".
    Ответ написан
    Комментировать
  • Стоит ли хранить директорию .idea на github?

    dlnsk
    @dlnsk
    ПК Партнер 01.01 -> ПК Поиск -> IBM PC
    Вам ответило 6 человек и всем и каждому в комментариях вы написали что вам удобно хранить настройки на github и вы единственный разработчик...
    Вы уверены что вообще стоило задавать этот вопрос?
    Ответ написан
    4 комментария
  • Как делать правильно сделать pull перед push, если я в другой ветке?

    dlnsk
    @dlnsk
    ПК Партнер 01.01 -> ПК Поиск -> IBM PC
    1. Обновляете локальный master
    2. Переходите в dev_sasha и делаете git merge master. Т.е. мерджите в свою ветку.
    3. Если есть конфликты - устраняете и комитите (в свою ветку)
    4. Делаете pull request.
    Ответ написан
  • Как не принимать нежелательные файлы когда автор принимает pull-request?

    dlnsk
    @dlnsk
    ПК Партнер 01.01 -> ПК Поиск -> IBM PC
    Если отсутствие новой папки нужно не только вам, а обусловлено какой-то логикой, то вы можете договориться с автором оригинального репа о создании дополнительной ветки без этой папки, использовать эту ветку и делать PR в нее.
    Ответ написан
    Комментировать
  • Как удалить файл из истории коммитов в GIT?

    dlnsk
    @dlnsk
    ПК Партнер 01.01 -> ПК Поиск -> IBM PC
    BFG Repo-Cleaner, насколько я понимаю - это для ситуаций, когда косяк 1000 коммитов назад и все это уже куда-то запушили. У вас всего 10 коммитов и, похоже, желание чему-то научиться.
    1. Если что-то закоммичено - испортить невозможно (всегда есть возможность восстановить).
    2. Видимо вы работаете в ветке master. Создайте ветку test на последнем коммите и делайте с мастером все что угодно - test останется в неизменном виде (всегда можно master перенести обратно в test и начать все сначала).
    3. git rebase --interactive <5-й коммит> (затем отмечаете коммиты, которые хотите отредактировать и, либо удаляете вообще данный файл, либо исключаете увеличение).

    Другие способы избавления от файла: https://itextpdf.com/en/blog/technical-notes/how-c...
    Ответ написан
    Комментировать
  • Как смерджить файлы, если в ветках разная вложенность каталогов?

    dlnsk
    @dlnsk
    ПК Партнер 01.01 -> ПК Поиск -> IBM PC
    Используйте подмодули.
    https://git-scm.com/book/ru/v2/%D0%98%D0%BD%D1%81%...
    Ответ написан
    Комментировать
  • Что подразумевается под отслеживаемым и не отслеживаемым в git?

    dlnsk
    @dlnsk
    ПК Партнер 01.01 -> ПК Поиск -> IBM PC
    Вы сейчас пересказываете какого-то странного блогера с его странными терминами. Думаю что никто не понимает что автор имел в виду под "зоной"...
    Перестаньте смотреть какие-то странные видео, начните читать официальную книгу (на русском, с картинками) там все очень понятно. Ну или отпишитесь от этого блогера и найдите другого. :))
    https://git-scm.com/book/ru/v2
    Ответ написан
  • Как игнорировать файл из внешнего git репозитория?

    dlnsk
    @dlnsk
    ПК Партнер 01.01 -> ПК Поиск -> IBM PC
    Делайте так, как делают все - храните в репозитории шаблон конфига (config.example.php), а сам конфиг поместите в игнор.
    ЗЫ: Анатолий в комментариях написал именно про это.
    Ответ написан
    Комментировать
  • Как мне настроить работу с git для prod и dev сайта?

    dlnsk
    @dlnsk
    ПК Партнер 01.01 -> ПК Поиск -> IBM PC
    В git нужно хранить конфиги по-умолчанию, а реальные конфиги, перекрывающие умолчания, не должны храниться в гит. В этом случае на dev у вас будут одни конфиги, а на prod другие и ничто не помешает вам просто сделать git pull в продакшине (продакшин продакшину рознь, естественно, и не везде можно обойтись без CI/CD).
    Ответ написан
    Комментировать