Заливать файлы по FTP просто и удобно… Пока у вас один сервер и небольшой объем данных. Но, допустим вы разработчик, ваши скрипты крутятся на нескольких машинах одновременно. Вы внесли изменения в 10 различных файлов в различных папках. Как теперь это все обновить на сотне машин? Возникает жуткая анальная боль! Это теперь нужно на каждую зайти, вспомнить папки и файлы которые поменял, скопировать их. И так на каждой машине. А потом уже изрядно позаебавшись вдруг обнаружить, что допустил ошибку в одном из файлов — и все по кругу.

Простая последовательность действий:

  1. Заходим на офишиал сайт и качаем штуку под названием Git. Устанавливаем.
  2. Штудируем документацию, есть на русском. На самом деле вам понадобится всего несколько команд, которые не сложно запомнить.
  3. Создаем аккаунт на Bitbucket. Создаем репозиторий, клонируем его на локальную машину.
  4. Ведем разработку на локальной машине (пример настройки вебсервера для Mac OS). Делаем коммиты. Делаем пуши на Bitbucket.
  5. На удаленных машинах клонируем репозиторий с Bitbucket. Настраиваем слушателя обновлений (автодеплой обновленного репозитория). Я делаю это через Forge. Теперь после каждого пуша на Bitbucket скрипты автоматически будут обновляться на всех машинах, куда вы склонировали свой репозиторий.

Это, сцуко, так удобно, что я визжал от радости как первокласница, получившая шарик, когда впервый раз такое проделал! И не благодарите.

52 коммента

22 января 2016

Комменты

  • wisest

    22 января 2016 в 14:12

    А про CI забыл

    • s37dap42x

      22 января 2016 в 14:28

      Что это?

    • Александр Грузов

      22 января 2016 в 20:05

      Лол, ты ещё про тесты напиши :-D

      • s37dap42x

        22 января 2016 в 20:33

        Чо, какие тесты, о чем ты?

  • Raoul

    22 января 2016 в 14:14

    Можно обойтись и без посредников в виде Bitbucket. Я просто завожу удаленный репо на сервере, пушаю в него, а обновление происходит после каждого пуша через хук.

    • Raoul

      22 января 2016 в 14:15

      И да, это реально просветление после гавнокодерства с заливкой скриптов по ftp )))

      • s37dap42x

        22 января 2016 в 14:28

        Да, можно и так, кстати.

  • malysh

    22 января 2016 в 14:20

    Так если разработка на локальной машине, может проще купить phpstrom — и его настроить и им аплодить? Гит шторм умеет.

    • Raoul

      22 января 2016 в 14:23

      Сила консоли рулит) Пробовал я эти ГУЕвые приблуды — фигня, консолька гораздо проще и удобнее.

      • malysh

        22 января 2016 в 14:28

        Гуевые приблуды? Ты на чем разработку то ведешь? Это редактор пхп кода (имхо один из лучших), который все это умеет из коробки нажатием быстрых клавиш. 50 доменов доров, каждый на одинаковом движке, надо внести изменения — везде. Один проект, один пуш — шторм могет.

        • Raoul

          22 января 2016 в 14:46

          Не поверишь… Notepad++ Гуевые приблуды это имелось в виду использовать какие-то модули, делающие пуш в гит, вместо банального git push. Дай угадаю — тру-виндузятник?)

          • Raoul

            22 января 2016 в 14:49

            И да, вносить изменения на 50 доменах в код пушами это просто кривые руки и неумение отделять логику от представления и тому подобное. У меня больше 3к доров живет на 1 доровом движке расположенном в 1 папке)

          • malysh

            22 января 2016 в 15:00

            Не, http://s8.hostingkartinok.com/uploads/images/2016/01/d8c9b2d4b5cd0734b434eae76738f7d4.png

            А про внос изменений: 50 доменов, новая ПП, слив мобилок, нужны изменения, расскажи тогда как?:)

          • Raoul

            22 января 2016 в 15:04

            Один ответ на твой вопрос — юзай ТДС)

          • malysh

            22 января 2016 в 15:12

            Расскажи мне теперь как код с партнерки какого-нить гипотетического дугласа и моя тдс могут мне помочь? А трекер я юзаю. ТДС? Да ты наверное под ру работаешь, да?

          • malysh

            22 января 2016 в 15:17

            Вот тебе, опять же гипотетический пример.
            Дано:
            50 доменов, 10 впс, панель веста(на всякий случай указал), разные шабы, удаленный инклуд запрещен, локальная вставка есть.
            Надо:
            Вставить/Изменить код (php) в файле config.php на всех доменах.
            Реализация: ?

            P.s. Или объясни, может просто я тупой и изначальная логика моей разработки такого шлака — хрень.

          • Raoul

            22 января 2016 в 15:35

            Ну если в конфиге то здесь исполовать git это вообще моветон. Хорошая практика использования git — везде, кроме конфигов.

            Подобную твоей задачу я решил у себя таким образом: у меня есть централизованная панель управления конфигами всех доров, с возможностью массовой их смены. Делает в 1 клик, пачка доменов загоняется и везде меняются конфиги. Только у меня не впски, а дедики и их не так много. Не вижу смысла брать 10 впсок, лучше я возьму 1 мощный сервак — как-то проще и все в 1 месте.

          • Raoul

            22 января 2016 в 15:32

            Нет) Я работаю исключительно с буржем и последний раз с рунетом работал лет 5 назад) Трекер? Арбитражник? По существу вопроса — посмотри на ту же Keitaro они по своей сути стали уже трекером.

            PS: У меня ТДС самописная, некоторое время назад был причастен к разработке одной ПП, оттуда остались наработки)

            Я хз че там за партнерки у Дугласа, с рунетом не работаю)

          • Начинающий дорвеестроитель

            23 января 2016 в 04:12

            Raoul, подскажи новичку, какими партнерками в буржунете можно монетизировать трафик на дорвеях?

          • Raoul

            22 января 2016 в 15:38

            Ну кстати, современные ТДС позволяют вполне выполнять какой-то js код. Ну а если тебе нужно выполнить php код, сделай под него отдельный скрипт и уже его укажи в ТДС. На самом деле странная проблема, по-моему, высосанная из пальца.

          • malysh

            22 января 2016 в 15:50

            Так вот не странная, меня например это азадачило — слив через скрипты допустим не планировался изначально (ну да, надо было рассмотреть эту возможность) а тут на тебе). гита там нету.
            Про тдс — и с тдс история такая что нет возможности удаленно выполнить пхп код.

            Опиши про панель управления конфигами, вроде нормальная тема (Вот я не догадался так сделать). Себе тоже хочу. Основные моменты реализации. Ну или оставь контакт)

      • malysh

        22 января 2016 в 14:34

        Только не надо про вим)

    • s37dap42x

      22 января 2016 в 14:27

      Консолька рулит, затверждаю. Когда увидел SourceTree, то он мне сложным показался. И еще: среда разработки — отдельно, система управлением версиями — отдельно. Не хочется их смешивать в один пакет. Хотя шторм — отличная штука, пользовался весь триальный период. На покупку пока денег нет =)

      • malysh

        22 января 2016 в 14:33

        Вот хоть убей не понимаю зачем разделять. Шторм и гит умеет и контроль версий прикрутить. Это я к чему — если над проектом не один работаешь. Консоль то рулит, но вот сижу я минте, мне если все аплоадить через консоль, так еще Я и Г диски синхронизировать (к которым оф гуи нету) — я ж и забыть могу). Ну можно конечно кроном — но не мой вариант.

        • s37dap42x

          22 января 2016 в 14:40

          ХЗ, может разделять и не нужно. Видимо, я просто не разобрался в PHPStorm где это быстрыми клавишами делать коммиты и пуши, поэтому делал из консоли. Как куплю себе эту прогу — снова вернусь к этому вопросу.

          • malysh

            22 января 2016 в 14:45

            А вообще что у тебя под веб дев? Ну полная сборка всмысле.

          • s37dap42x

            22 января 2016 в 14:47

            SublimeText сейчас (сменил бы на Шторм в будущем) + Git в консольке + Репозитории на Bitbucket + Forge для администрирования + New Relic для мониторинга + Google Chrome для тестов =) Это все.

          • malysh

            22 января 2016 в 15:25

            Так сублим с плагинами все тоже умеет, но для меня оказалось тяжело. На хабре есть.

            Т.е. Ты сейчас пишешь в саблиме, настраиваешь бит на впс/дедике, потом через консоль гит, потом твой бит, потом аплоад?

          • s37dap42x

            22 января 2016 в 15:39

            Редактирую код в текстовом редакторе. Коммитю. Проверяю в Хроме. После нескольких коммитов, довольный результатом перехожу в консоль, делаю гит-пуш. Через несколько секунд код обновится сам везде где мне нужно. Просто проверяю, что это так в браузере.

          • s37dap42x

            22 января 2016 в 15:39

            Как бы да: центральное хралище кода — это БитБакет. С него я клонируюсь куда мне нужно. Там и храню все.

          • malysh

            22 января 2016 в 15:57

            Редактирую код. Проверка. ctr+alt+shift+x — выбор куда. Все

          • Kees

            24 января 2016 в 22:22

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

  • Ginger Dog

    22 января 2016 в 16:26

    я пока не достиг этого левела. я по старинке заливаю через ftp :(

  • Qqq

    22 января 2016 в 17:19

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

    Если тебе нужно обновлять одни и теже файлы на ста сервирах или копировать слишком часто — у тебя какой-то косяк в системе.

    Лучше научись работать на линуксе вместо всей этой поеботине с сайтами посредниками, чужими ненужными сервисами на которые ты тратишь своё время и деньги. Вот это реально даст тебе скилов как вебразработчику, поднимет на новый уровень, а то ты там писал, что top и du для тебя сложные команды, это ппц. Научись сервер поднимать, домены привязывать, ламп или что там у тебя оптимизировать.

    • Raoul

      22 января 2016 в 17:55

      В основном, конечно, git это незаменимая вещь именно для командной работы, это да. Но даже для одиночного вебмастера git упрощает деплой очень сильно. Ну и не будем забывать об основном назначении git как-то система управления версиями)) Не обязательно насиловать себя и использовать все функции git (коих великое множество). Оверинжиниринг — тоже зло, когда ты загоняешь себя в рамки, потому что «так правильно». Я через это проходил, и потом убрал много ненужной хуйни и вернулся в каком-то смысле обратно к гавнокодерству. Зато все работает быстро и эффективно. И похуй кто там думает что код не по дзену) Но git все равно использую.

      • Qqq

        22 января 2016 в 18:29

        Все через это (оверинжиниринг) проходят, причём периодически. Это даже полезно, главное к основам возвращаться, а не за вечно меняющейся модой гоняться.

    • s37dap42x

      22 января 2016 в 18:02

      Хуйня всё это. В определённых условиях гит необходим, особенно когда команда. Но для одиночных мастеров чем проще тем лучше.

      Это не правда. Git подходит и одиночному разработчику.

      Например: я хочу сделать какую-нибудь фишку, но не уверен, нужна ли она, будет ли хорошо работать. Я делаю ответвление и экспериментирую. Затем либо сливаю ее с мастер-веткой, либо киляю.

      Второй пример — нахуячил ты что-то где-то, косякнул. Все перестало работать или стало работать криво. Не нужно вспоминать и искать где ты накосячил. Просто откатился до предыдущего коммита — и продолжил работать как ни в чем не бывало.

      Оба примера я уже на себе испытал. И очень радовался, что пользуюсь гитом, а не по старинке. Советую и другим одиночкам его использовать. Потом, если в команде работать будешь — уже не придется ничего изучать.

      • Qqq

        22 января 2016 в 18:28

        Выучи волшебные клавиши ctrl+c ctrl+v и перед тем как что-то менять сделай бэкап папки. Комит это ещё раз ctrl+c и ctrl+v. Напиши скрипт в пару строк, который каждые 10 минут бэкапит с датой.

        Изучить конечно полезно, но не надо себя обманывать, что там есть что-то, что ты не можешь сделать сам также или даже лучше.

        • s37dap42x

          22 января 2016 в 18:32

          Сделай бэкап папки! У-ха-ха-ха! Вот поэтому я пишу посты в блог. Чтобы не занимались хуйней и не делали бэкапов папки. Контроль версий — это охуенно. Бэкапы — не охуенно. Ты походу не понимаешь, что Git — это охуенно, потому что не используешь его. Я тоже не понимал. Насильно себя заставил изучить, потратил на это время — теперь не понимаю как раньше без него жил.

          • malysh

            22 января 2016 в 18:40

            Ты зря так. Чел шарит, ты просто не сталкивался. Как говорят бэки не далают только до определенного момента.
            А скрипт в пару строк — это и есть контроль версий в изврат форме

          • Raoul

            22 января 2016 в 23:23

            Да неее, ребят — бекап папки? Серьезно? Это пиздец неудобно же. Я так раньше делал — это коматоз. Ты хранишь КУЧУ ненужного кода. Ты ведь бекапишь ВСЕ, а не только изменения. В этом и суть Revision Control System — в том, что они хранят только изменения. Плюс к тому же git есть гуевые приблуды, которые позволяют наглядно смотреть коммиты, сливать, отменять. Да не, гит невозможно сравнить с ручными бекапами кода))

          • s37dap42x

            23 января 2016 в 02:14

            Присоединяюсь!

        • Kees

          24 января 2016 в 22:25

          Епать, бекап папки, а потом их овердохуя станет и девать некуда, и на рабочем столе каша. Проходил я через это в 2009 году.

      • Заботливый Фермер

        28 января 2016 в 16:04

        Согласен с тобой полностью!
        Расскажи, как устроен твой work flow?

        • s37dap42x

          28 января 2016 в 16:17

          Я даже не знаю что это означает «work flow». Рабочий поток? Чо за фигня?

    • malysh

      22 января 2016 в 18:48

      Вот это полная хуйня, гит для команды (было дело) — хуетень. Ну есть там не топовые разрабы. Заебет потом контрл версии восстанавливать.

      И причем тут линукс? Велосипеды на баше писать?

      • Qqq

        22 января 2016 в 19:02

        Линупс это совет 37. Последние посты почитал, он явно не в ту сторону пошёл, какими-то сайтами сервисами восхищается, хотя сам основу не может. Там далеко до баша, уверен он от чёрного чёрного окошка путти страх испытывает и всячески уклоняется от прямой работы с системой, всё через говносервисы хочет сделать.

        Но вообще к вёбзаработку это всё не относится, я бы посоветовал не нырять слишком глубоко в разработку. Сложно будет вернуться в реальный мир.

        • s37dap42x

          22 января 2016 в 19:28

          Путти? =) У меня mac и терминал открыт постоянно! Отдельный рабочий стол даже для него! =)

          Онлайн сервисы — это охуенно и удобно. Весь офисный пакет, например, мне заменили сервисы Гоши.

          • noxon

            22 января 2016 в 23:16

            хех ты се мак купил)) это все объясняет

          • s37dap42x

            23 января 2016 в 02:13

            Еще в 2012-ом. Все тот же мак. С тех пор и не менял =)

        • Raoul

          22 января 2016 в 23:27

          Тут соглашусь, в том плане, что не нужно усложнять. Некоторые вещи и нахер не нужно делать по правилам или каким-то там стандартам. Короче суть в том, что не стоит забывать, что на первом месте — скорость, эффективность и PROFIT. А не дрочерство на код. Хотя это тоже вариант, но к бабломейкерству он не имеет вообще НИКАКОГО отношения. Скорее даже отрицательное.

  • noxon

    22 января 2016 в 23:14

    помню мы как то на хакатоне делали приложение «Бармагедец» про поиск отптимальных маршрутов по барам. Там короче тоже надо было репозитарий использовать, мы достаточно быстро разобрались, начали разработку, начали загружать версии, а потом нажрались и спать легли)) нах он нужен так и не поняли))

  •