Ответы пользователя по тегу Git
  • От какой ветки нужно ветвить фиче-бранчи для разработки?

    Wolfnsex
    @Wolfnsex
    Если не хочешь быть первым - не вставай в очередь!
    Поделитесь опытом, какой способ вы используете для своей разработки?
    Лично мы используем такой способ:
    1. Есть мастер ветка, туда попадает только полностью оттестированный код (обратите внимание - не в конце какого-то спринта; не после того, как на горе рак свистнет; а после прохождения всех этапов тестирования)
    2. Есть dev-ветка, ею заведует старший разработчик и по мере необходимости "подливает" туда фиче-ветки.
    3. Есть много фич-веток, в которых работают отдельно взятые личности, при этом откуда они будут брать кодовую базу для доработки - их личная трагедия. Если при слиянии возникают конфликты - есть старший разработчик, если ему что-то непонятно - есть авторы кода, которых можно позвать и спросить "какого тут происходит?".

    Лучшая формула работы, из моего личного опыта - это "думать головой", а не слепо следовать какому-то набору правил.
    Ответ написан
    Комментировать
  • Фронтенд и бекенд в разных репозиториях или в одном?

    Wolfnsex
    @Wolfnsex
    Если не хочешь быть первым - не вставай в очередь!
    Как хранить исходники вместе или раздельно по разным репозиториям? Какие плюсы и минусы каждого способа?
    Мне кажется тут вопрос не столько в "плюсах и минусах" сколько в здравом смысле. Мне не совсем понятно, что в конечном счёте означает "бекенд на python, фронтэнд на angular". Это два независимых проекта, способных работать автономно друг от друга и "общаться", например, через API, разработка которых происходит параллельно и независимо друг от друга, при этом какие-либо части проектов не пересекаются между собой (например, куски HTML/CSS/JS/etc кода не копируются в бекенд-часть)? Если так - то крайне логично разделить это на два отдельных репозитория, т.к. это по сути два разных проекта, связанных между собой весьма косвенно. Если же у Вас проекты имеют более прочную связь между собой или степень контаминации исходного кода выше той, что я описал ранее - то это один проект и дробить его на множество репозиториев, лично я смысла не вижу никакого (а то мы так дойдём до "давайте хранить HTML-код в одном репозитории, CSS в дургом, JS в третьем и т.д.).

    P.S. Обычно, такие вещи разъясняет штатный тимлид, а не коллеги по форуму :)
    Ответ написан
    5 комментариев
  • Как правильно использовать Git при работе над SPA приложением одному разработчику?

    Wolfnsex
    @Wolfnsex
    Если не хочешь быть первым - не вставай в очередь!
    Здравствуйте.
    Здравствуйте.

    Разрабатываю SPA приложение на JavaScript и php (в будущем замена на Node.js) на сервере для реализации API.
    Что именно Вы разрабатываете и на чём - значения не имеет, если исходный код представляет из себя файлы.

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

    Подскажите пожалуйста, как было бы наиболее эффективно внедрить GIT, что бы упростить все вышеописанное?
    Для наиболее эффективного внедрения Git - обычно используют его установщик (инсталлятор, пакет и т.п.) под соответствующую операционную систему.

    Использую Atom, но без проблем могу перейти на любой другой свободный редактор/IDE.
    Git никак не связан с редакторами и/или IDE, можете использовать что угодно или вообще сторонний Git-клиент, типа TortoiseGit (и прочих подобных).

    То есть хотелось бы одним коммитом сохранить и JS и PHP код.
    Вы можете сохранять одним коммитом любое количество файлов (если сильно углубиться в подробности, то дельты изменения файлов, но это Вам не очень интересно, я думаю).

    Разработку веду сразу на рабочем vps используя ftp плагин для Atom, который позволяет редактировать файлы на сервере, как локальные.
    Можете поставить Git в т.ч. и на удалённый сервер и обновлять там файлы проекта с помощью "push"а, но, с учётом конктекста Вашего вопроса, я бы всё-таки порекомендовал для начала разобраться с Git'ом получше, а сервер для разработки всё-таки ставить локально и не лохматить бабушку.

    P.S. А для начала, рекомендую Вам посмотреть какие-нибудь видео-уроки от доморощенных экспертов, на тему "как использовать Git", коими, я уверен, Ютуб завален до краёв.
    Ответ написан
    5 комментариев
  • Как в git скрыть директории для некоторых сотрудников?

    Wolfnsex
    @Wolfnsex
    Если не хочешь быть первым - не вставай в очередь!
    Как обычно компании решают данную проблему?
    Обычно эту проблему решают одним из следующих способов:
    1. Подбором сотрудников которые ничего не тащат
    2. Наличием специалист(а, ов) по безопасности
    3. Git submodules
    4. Разными репозиториями
    Ответ написан
    Комментировать
  • Как избежать пуша?

    Wolfnsex
    @Wolfnsex
    Если не хочешь быть первым - не вставай в очередь!
    Я хочу оставить себе последний стянутый мастер, но бесполезный Push делать не хочу. Можно как-то избежать этого пуша?
    Можете сделать этот пуш в другую ветку (на всякий случай, если эти изменения нужны), после чего сделать hard reset.
    Ответ написан
    Комментировать
  • Как подружить laravel, ubuntu, git, phpstorm?

    Wolfnsex
    @Wolfnsex
    Если не хочешь быть первым - не вставай в очередь!
    может кто сталкивался на ubuntu с подобной проблемой?
    Эта проблема решается довольно легко. Есть такая штука, как "сборщики проектов" различные или другого рода пост-инсталляционные скрипты, в т.ч. к ним (к этой же области) относятся и различные хуки самого GIT'а.

    Пишите соотв. скрипт, который будет выставлять нужные права при каждом pull'e или ином действии. Либо же, запускаете этот скрипт руками, в нужный момент и проблема решена.

    Точно по такому же принципу, при первом клонировании проекта, в 95% случаев Вам нужно будет запустить менеджер пакетов, что бы "наполнить" папку "vendor". В случае PHP/Laravel - это соотв. будет composer. А ещё не редко бывают различные сборщики на базе NodeJS, аки WebPack или Gulp (и другие), которые так же нужно запускать в тот или иной момент времени...
    Ответ написан
    2 комментария
  • Как влияет форматирование кода на гит конфликты?

    Wolfnsex
    @Wolfnsex
    Если не хочешь быть первым - не вставай в очередь!
    Почему в командах , которая занимается разработкой с использованием git , есть определенные правила настройки редактора кода ?
    Никогда раньше не слышал, что это связано именно с использованием Git.

    Думаю, к конфликтам это никак не относится (напрямую), просто табуляции в разных редакторах выглядят по разному и не редко "4 пробела" и "Таб" - это не одно и то же, даже визуально. Например, в редакторе VI(M) по умолчанию, "Таб" выглядит скорее как 8 пробелов, нежели как 4.

    А ещё некоторые языки могут быть зависимы от отступов, Python например, и разные варианты отступов могут давать неожиданное поведение в некоторых случаях...

    Вообще, обычно принято использовать "4 пробела" вместо Tab'а... многие редакторы умеют заменять "Таб" на "4 пробела"...

    Ну и когда все пишут "в едином стиле", потенциальное количество проблем, в т.ч. в будущем, например при анализе исходного кода машинным способом - значительно сокращается.
    Ответ написан
    Комментировать
  • Как правильно хранить репозиторий на GitHub?

    Wolfnsex
    @Wolfnsex
    Если не хочешь быть первым - не вставай в очередь!
    Вопрос глупый, но всё же хочется услышать ответы.
    Не зависимо от того, Visual у Вас Studio или какая-то ещё, в репозитории, при нормальном раскладе никогда не сохраняют в т.ч. следующее: файлы, которые генерирует IDE или что угодно ещё, автоматически; суда же относятся различные "билды" (результат работы некоторых сборщиков и т.д.), всё что может быть сгенерировано повторно на другой машине - в репозиторий обычно не кладут.

    Иными словами, в репозитории обычно хранится то, что относится к исходному коду непосредственно. То есть, например, скачиваемые одной командой какие-то внешние библиотеки, зависимости и т.д., в репозиторий так же не сохраняются, обычно.
    Ответ написан
    5 комментариев
  • Изучать только git?

    Wolfnsex
    @Wolfnsex
    Если не хочешь быть первым - не вставай в очередь!
    Есть ли смысл в 2017 году изучать другие системы контроля версий такие как Mercurial или Subversion?
    Есть, но в процентном соотношений этот "смысл" будет довольно скромным. Кстати, помимо Git, Mercurial и Subversion, есть ещё и другие системы...

    Вероятность применения Hg или SVN в каком-то реальном проекте - довольно не велика и скорее всего, это будет проект который либо тянется долгие годы, и его разработчики до такой степени привыкли к какой-то системе и настолько консервативны, что особо чего-то менять не собираются.

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

    Отвечая на Ваш вопрос, в общей сложности - скорее нет (другие системы аналогичного назначения, особого внимания не заслуживают). С вероятностью ~99% Вы будете встречать Git. Ведь даже такие Microsoft не брезгует пользоваться GitHub'ом, и встроила поддержку Git'а в VisualStudio.
    Ответ написан
    Комментировать
  • Хранить ли изображения в Git?

    Wolfnsex
    @Wolfnsex
    Если не хочешь быть первым - не вставай в очередь!
    Так как быть?
    Определиться с тем, являются ли картинки часть исходного кода или всё же частью внешних/временных данных? Если частью исходного кода (например, логотип из макета сайта) - сохранять, если просто какие-то временные данные - выдавайте их отдельно всем желающим.

    *Обычно так, но решает на самом деле, каждый сам для себя. GIT никоим образом Вас в этом не ограничивает. Единственное, чего однозначно не стоит забывать - много временных (меняющихся) данных, попадающих в репозиторий - обладают не только "проблемой скачивания оных", но и свойством "раздувать репозиторий в размерах", что в целом может быть не очень приятно, в ряде случаев.
    Ответ написан
    Комментировать
  • Как правильно работать с ветками в Webstorm?

    Wolfnsex
    @Wolfnsex Куратор тега Веб-разработка
    Если не хочешь быть первым - не вставай в очередь!
    1. Как объяснить это вебшторму? Что теперь нужно, во-первых, обновить все файлы из новой ветки и во-вторых, что изменения тоже надо пушить в новую ветку.

    Есть два способа:
    1. Влить в нужную ветку (которую обновляем) ветку (из которой берём файлы для обновления
    2. Взять все файлы из нужно ветки (скопировать их куда-то), переключиться на ветку которую нужно обновить, перезаписать в ней все файлы (ранее скопированные)

    2. Как при этом время от времени забирать изменения из ветки first? И потом обратно возвращаться в свою?
    Время от времени вливать в нужную ветку - ветку first.

    3. И как ничего нигде не испортить?
    Не использовать "force" и прочие подобные варианты "насилия". В таком случае, "испортить" что-то будет довольно проблематично.

    P.S. Про слияние ветвей в интернете довольно много информации, по этому ссылки не привожу.
    Ответ написан
  • Удаление зафиксированных в git файлов?

    Wolfnsex
    @Wolfnsex
    Если не хочешь быть первым - не вставай в очередь!
    Можно ли как-то поставить папку в git ignore, чтобы избежать в будущем случайного добавления. Спасибо!
    Можно, создаёте в корне файл .gitignore и пишите туда примерно следующее (мой файл .gitignore):
    .idea/
    nbproject/
    node_modules/
    css/


    Удаление "случайно попавших" в историю файлов, из этой самой истории, в т.ч. если Вы уже сделали коммит (и даже если не один) делается с помощью команды git-filter-branch (по ссылке есть примеры). В том числе про это можно прочитать тут или даже найти на самом "Тостере", например тут.

    P.S. А ещё в этом плане неплохо помогает иногда IDE под названием "PHPStrorm", показывая подсказки на подобии "Игнорируемые файлы присутствуют в истории репозитория" и даже подсказывая команды, как эти файлы из истории репозитория удалить :)
    Ответ написан
    21 комментарий
  • Не удается сделать push, что делать?

    Wolfnsex
    @Wolfnsex
    Если не хочешь быть первым - не вставай в очередь!
    hint: 'git pull ...') before pushing again.
    Вроде же написано, "Сделайте гит пул, перед тем как "пушить", нет?
    Ответ написан
    4 комментария
  • Как удалить ненужную папку в проекте на github?

    Wolfnsex
    @Wolfnsex
    Если не хочешь быть первым - не вставай в очередь!
    Ответ написан
    Комментировать
  • Уровень владения Git'ом для работы в студии. Он какой?

    Wolfnsex
    @Wolfnsex
    Если не хочешь быть первым - не вставай в очередь!
    Скажите, этого достаточно как рядовом разработчику в студии?

    В условиях фактической субъективной реальности, на просторах бывшего СССР - это примерно всё, что Вам придётся когда либо узнать о работе с Git'ом, примерно в 97% "студий". То есть, отвечая на Ваш вопрос - да, этого будет достаточно. Возможно Вас ещё паре-тройке особенностей конкретно их работы обучат. И будет довольно неплохо, если "там" будут работать с Git'ом хотя бы так, как Вы описали. А не гадить в одну ветку в 20 человек...

    То есть, в целом, если в "студии" слышали про Git и тем более ветки, - это уже хорошо. А если знают зачем они нужны - это прям вообще не плохо. А если ещё и пытаются применять их по назначению... - это считайте, уже почти топовая компания.
    Ответ написан
    4 комментария
  • Как настроить git сервера + sourcetree?

    Wolfnsex
    @Wolfnsex Куратор тега Веб-разработка
    Если не хочешь быть первым - не вставай в очередь!
    1. Git сервер на windows server 2012 (на нем будут все репозитории)

    Я бы так не стал извращаться, но Вам виднее видимо, раз для git-сервера был выбран windows...

    2. Подключение клиентов(разработчиков) к git серверу

    Известные мне способы: через HTTP, GIT и SSH протоколы.
    Где,
    а) HTTP - авторизация настраивается на уровне HTTP-сервера и проксируется на Git. В виндовсе насколько я понимаю, это должен быть IIS по логике вещей (иначе зачем нам вообще Windows, для этих целей?), соответственно, авторизацию настраиваете на нём
    б) GIT - не разу не использовал, т.к. изначально "родной" протокол Git, даже авторизацию не поддерживал (возможно сейчас что-то изменилось, но это мало вероятно).
    в) SSH-протокол, в виду особых причин в windows встраивался довольно хреново, когда я занимался этим вопросом, но возможно что-то изменилось.

    Подробности про протоколы.

    3. Автоматическое Создание бэкапа (например раз в неделю) репозитариев на др. сервер (Ubuntu)

    Элементарно, создаёте скрипт, который будет запускаться из планировщика, например, раз в неделю, и он делает либо:
    а) Пакует все папки репозиториев в архив(ы) и отправляет куда положено, любым доступным образом (FTP, SSH, HTTP, как-то ещё), но если есть вероятностью изменений в репозитории во время архивации, я бы воспользовался следующим вариантом, или отключал бы репозитории на время архивации
    б) Делаете пуш, всё тем же скриптом в удалённые клоны репозиториев, настроенных по принципу описанному выше. Или раз в неделю "git pull" с удалённого репозитория. Всё это хорошо расписано здесь.

    4. Автоматическая заливка репозитариев на Bitbucket

    Особо ничем не отличается от предыдущего пункта

    Спасибо!

    Не за что :D
    Ответ написан
  • Как настроить удаленный репозитарий на SourceTree?

    Wolfnsex
    @Wolfnsex
    Если не хочешь быть первым - не вставай в очередь!
    1. Настроить на dev сервере репозитарий для подключения удаленных пользователей

    Тут я думаю, проблем у Вас не возникнет, вариантов как расшарить Git - просто масса, от HTTP до SSH.

    2. Настроить синхронизацию серверного репозитарий с bitbucket (возможно ли автоматически это сделать )

    Возможно, напишите простенький хук, он будет заливать заливать любой коммит на любой сервер.

    3. Заливать с серверного репо в bitbucket только возможен администратор проекта ( на его ж аккаунт в битбакете)

    Тут вообще проблем нет. Заходите через консоль (ssh) туда, и заливаете, что именно Вам надо и куда надо. Ну это что бы не заливать всё подряд. А вообще, Вам бы по моему, проще было сделать нужное кол-во репозиториев на ведробите (bitbucket'е) или ещё где-то, и не мучиться так.

    Где почитать - я думаю, здесь. Про хуки (писал выше) - глава 8.3.
    Ответ написан
    Комментировать
  • Какие файлы composer заливать на сервер?

    Wolfnsex
    @Wolfnsex
    Если не хочешь быть первым - не вставай в очередь!
    Есть два варианта:
    1. Заливать на сайт/сервер все файлы, которые генерирует composer - репозиторий занимает больше, за то, все файлы, при клонировании, пуше на сервер и т.д. - сразу на своих местах, и не скачиваются повторно. Этот вариант, обычно НЕ используют, по субъективным причинам.

    2. В игнор добавляют папку /vendor, тогда на сервер соотв. нужно установить composer, и после того, как у вас было какое-то обновление в композере (добавился модуль, обновился, изменился и т.д.) -- на сервере (как вариант - через git-хук) запускаем composer install.

    Какой механизм выбрать Вам - исключительно личное предпочтение. Второй вариант - классический, первый - более "надёжный" и позволяет не устанавливать composer на сервер.

    Стандартный файл .gitignore из корешка фреймворка Laravel, с небольшими добавлениями от меня выглядит так:
    /node_modules
    /public/storage
    /vendor
    /.idea
    Homestead.json
    Homestead.yaml
    .env
    
    # phpstorm project files
    .idea
    # netbeans project files
    nbproject
    Ответ написан
    8 комментариев
  • Как отредактировать существующий коммит?

    Wolfnsex
    @Wolfnsex
    Если не хочешь быть первым - не вставай в очередь!
    Можно, например так.
    Ответ написан
    Комментировать
  • Как использовать контроль версий для сайта на обычном хостинге?

    Wolfnsex
    @Wolfnsex
    Если не хочешь быть первым - не вставай в очередь!
    Как использовать контроль версий для сайта на обычном хостинге?

    Передельно просто. Рецепт такой:
    1. Берёте любой, можно самый дешевый VPS (если своего сервера нет)
    2. Настраиваете там GIT'репозитории в нужном количестве
    3. В каждый репозиторий, кладёте скрипт-хук, который будет выгружать изменившиеся файлы на нужны FTP-сервер (судя по ссылкам выше, подобные решения есть уже или в готовом или в полу-готовом виде).

    То есть, Вам навсего нужно ознакомиться с механизмом "хуков" гита, как мне видится. И можно ещё пожалуй, ознакомиться с FTP-клиентами запускаемыми из консоли, или механизмом монтирования FTP как файловой системы... Вариантов много, Вам нужно просто выбрать.
    Ответ написан
    2 комментария