Судя по его популярности, вероятно, вы слышали о Git. По определению, Git является распределенной системой контроля версий и управления исходным кодом (SCM).
Проще говоря, Git помогает вам сохранять проекты в разных версиях, чтобы вы могли без проблем получать предыдущие версии. Исходные коды (или файлы) сохраняются в репозиториях. Вы извлекаете файлы из версии, вносите некоторые изменения, сохраняете их и фиксируете изменения, чтобы создать более новую версию своего проекта.
Мы поговорили с Richo Healey из 99 Designs, чтобы обсудить возможности использования Git. Посмотрите ниже, как он знакомит нас с некоторыми вещами верхнего уровня, а также с тем, как работает база данных. Это не так страшно, как это делают большинство людей!
Используете ли вы Git для обычного управления исходным кодом? Вы видели или слышали о каких-либо нетрадиционных, но полезных приложениях для Git?
Начните с Git
Для транскрипции JumpCast и тому подобного, посетите Learnable
Джесс: Я здесь с Ричо Хили, инженером-разработчиком в 99designs. Он собирается рассказать нам немного о Git сегодня. Что именно Git?
Rich: Проще говоря, Git называется Global Information Tracker. В основном это сложное хранилище значений ключей для сложных типов данных, которые могут быть преобразованы в простой текст. В реальных условиях это означает, что если у вас есть большая коллекция объектов, которые вы хотите передать через ряд состояний, вы можете использовать Git для отслеживания этих состояний с помощью удивительного дельта-сжатия на диске и полной истории этого.
Джесс: Так каково происхождение Git? Когда это началось, как оно ожило?
Рич: Изначально в Linux использовалось программное обеспечение под названием BitKeeper для управления мертвым исходным кодом и метаданными версии, связанными с ним, но из-за некоторых лицензионных ограничений у них, по сути, были огромные ссоры с компанией, которая публиковала BitKeeper. Затем Линус Торвальдс решил написать свою собственную реализацию, которая, мы надеемся, решит все проблемы, которые он видел в существующих решениях на тот момент.
Джесс: Я понимаю, что для этого есть стороннее использование. Что именно они?
Rich: GitHub, безусловно, популяризируется с помощью Git. В наши дни у них есть смехотворные цифры использования с точки зрения просто количества разработчиков, использующих его. Но, несмотря на эту популярность, многие сервисы, такие как Heroku для хостинга приложений или Travis CI, например, для автоматического тестирования, будут в основном интегрированы с Git и перехватывать события, которые вы распространяете в сторонние репозитории, что означает, что вам не нужно проходить и выполнять эти дополнительные шаги в дополнение к вашей обычной рабочей нагрузке. Git усваивает это так, что когда вы просто нажимаете код, чтобы получить его запись, вы можете фактически интегрировать этот шаг развертывания или тестирования вместе с ним.
Джесс: Каковы некоторые варианты использования Git, кроме как для хранения кода?
Rich: Git абсолютно не зависит от данных, которые он хранит, а это означает, что, хотя он явно пригоден для хранения наборов исходного кода, он также пригоден, например, студенту университета, пишущему свою диссертацию на степень доктора философии из-за его способности отслеживать содержание на протяжении многих ревизий. Это означает, что когда вы пишете живой документ, вы можете просмотреть и просмотреть его историю, а также то, о чем вы думали в то время, в форме сообщений коммита.
В противоположном конце шкалы было недавнее движение к правительствам, использующим это для написания их законов. Благодаря своей модели разветвления и разветвления, а также тому, как она позволяет вам вносить изменения во что-то еще, а затем предлагать свои изменения как лучшую ревизию того, что у них уже есть, это действительно очень удобно.
Джесс: Так тебе нужно быть технически подкованным, чтобы использовать Git, или кто-нибудь может его использовать?
Рич: Я думаю, вы обнаружите, что умение взаимодействовать с Git практически напрямую зависит от того, что вы пытаетесь с ним делать. Если вы хотите хранить весь свой исходный код, вам понадобится разумное количество технических навыков. Но если вы программист, вы, вероятно, уже имеете это.
На другом конце шкалы, поскольку мы перевели 99 дизайнов на немецкий язык, у нас фактически есть наши переводчики, напрямую взаимодействующие с нашим исходным кодом через редактор. То, что делает этот редактор, в основном означает, что им не нужно напрямую понимать, что происходит. Они просто проталкивают свои изменения, и он снова попадает в наш репозиторий.
Джесс: Так с чего же начать, если мы хотим узнать больше о Git?
Рич: Скотт Чакон, основатель GitHub, который добился огромных успехов в популяризации Git, на самом деле написал книгу под названием Pro Git, которая доступна на Amazon, но также бесплатна и с открытым исходным кодом, если вы просто хотите просматривать контент. А также GitHub публикует несколько фантастических страниц справки и интерактивную демонстрацию, которая фактически позволит вам взаимодействовать с базой данных Git прямо в вашем браузере.
Джесс: Как вы относитесь к представлению нас в Git? Ты покажешь нас?
Рич: Конечно, я хотел бы показать вам некоторые вещи высшего уровня, а также некоторые из того, как работает база данных и как она не так страшна, как большинство людей это понимают.
Джесс: Давай проверим это.
Рич: Представляя Git, я хотел быстро познакомить вас с некоторыми функциями, которые отделяют его от традиционно централизованных SCM, а затем погрузиться в одну из вещей, которая делает его самым плохим, перебазирование, которое также считается одним из самые пугающие приемы Для начала мы просто клонируем agent99, бот развертывания, который мы используем на 99designs. Перейдя в этот новый репозиторий, вы сразу увидите, что у него полная история, как показано в журнале Git. Это, очевидно, другой SVN, где получение журнала потребовало бы возврата на сервер и заняло бы так много времени, что вам почти наверняка потребовалось бы указать диапазон ревизий, который вас интересует. Это значительно удобнее, если вы Пытаюсь работать на дороге, отключен от
Интернет.
Следующее, что я хотел обсудить, как я уже сказал, это ребаз. Rebase — это возможность автоматически или в интерактивном режиме переписывать историю в репозитории Git. Это чрезвычайно полезно, если у вас есть рабочий процесс, который включает в себя фиксацию очень часто, например, с небольшими интервалами, а затем в конце основной части работы, пытаясь преобразовать ее в логические блоки работы. Это может упростить поиск ошибок, которые вы сделали.
Например, если вы используете Git Bisect. Чтобы показать тривиальный пример этого, я собираюсь показать вам коммит, о котором я, возможно, пожалел, с помощью take, где я столкнулся с этой стабильной рубиновой версией, на которую я нацеливаюсь в Agent 99. Удаление ее тривиально. Мы собираемся вернуть несколько коммитов из головы, просто удалить коммит, который нам больше не нужен, а затем закрыть.
Как вы можете видеть, коммит уже ушел. Это всего лишь один тривиальный пример. В какой-то момент я бы хотел рассказать вам о более продвинутых.
Джесс: Большое спасибо, Ричо.