Git Tutorial and Cheat Sheet: Приручите эту популярную систему контроля версий

Раскрытие информации: Ваша поддержка помогает поддерживать работу сайта! Мы зарабатываем реферальную плату за некоторые услуги, которые мы рекомендуем на этой странице.


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

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

Рабочая станция каждого кодера содержит полную копию рабочего каталога и репозитория, включая все их индивидуальные и текущие изменения и исправления. Когда код одного программиста доработан, копия может быть передана пирам или центральному серверу..

Git стал одной из самых популярных систем контроля версий с открытым исходным кодом среди разработчиков программного обеспечения, во многом благодаря своей скорости, надежности и врожденной целостности данных..

история

Git был создан Линусом Торвальдсом, создателем и главным разработчиком ядра Linux.

Работа над проектом началась в 2005 году, когда Торвальдсу и его команде разработчиков пришлось искать альтернативу BitKeeper, проприетарной системе управления исходным кодом, которую они использовали для разработки и усовершенствования ядра Linux..

Владелец авторских прав BitKeeper отказался от бесплатного использования продукта, поэтому Торвальдсу пришлось искать систему контроля версий, чтобы заполнить пустоту. К сожалению, ни одна из найденных им распределенных систем с открытым исходным кодом не справилась с поставленной задачей, не дотягивая ни по скорости, ни по производительности.

Не найдя ничего, что отвечало бы его потребностям, Торвальдс решил разработать собственную систему управления версиями. Его цели были просты:

  • Использовать текущее состояние систем с параллельной версией в качестве примера того, чего не следует делать;

  • Фокус на распределенном рабочем процессе;

  • Убедитесь, что исправление занимает не более 3 секунд;

  • Включить меры защиты от случайного или злонамеренного повреждения.

Торвальдс начал разработку Git в апреле 2005 года. Первоначальные цели проекта были скоро достигнуты, и первая итерация системы была запущена до конца года..

В 2006 году Торвальдс передал поддержку Git Хунио Хермано, одному из основных участников проекта. Hermano продолжил разработку Git, наблюдая за последующими версиями системы, включая последний выпуск Git 2.9 в 2016 году..

особенности

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

Системы параллельных версий (CVS) полагаются на один централизованный сервер для хранения полной истории версий данного программного обеспечения. При использовании этой модели программисты и разработчики должны иметь доступ к общему серверу, чтобы просматривать код программного обеспечения и работать с ним..

Это часто мешает программистам работать быстро и эффективно, особенно при работе в команде.

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

Распределенный контроль версий

Git, однако, является распределенной системой управления версиями (DVCS), и, как таковая, не зависит от централизованного сервера для размещения полной истории версий любого данного проекта..

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

Это позволяет программистам работать в более безопасных и более гибких средах кодирования без необходимости оставаться подключенным к общему серверу..

Улучшенные характеристики производительности

Расширенные возможности производительности – еще одна причина, по которой Git стал популярной альтернативой другим системам управления исходным кодом..

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

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

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

Безопасность

Наконец, ключевой особенностью Git является присущая ему безопасность. Все данные и файлы в хранилище Git защищены алгоритмом хеширования SHA1. Это защищает код от злонамеренных и случайных изменений.

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

Совместимость

Git – это DVCS с открытым исходным кодом, которую можно загрузить непосредственно с веб-сайта Git. Git совместим с операционными системами Windows, Linux, Mac OSX и BSD.

Начиная

Git – это мощная система управления исходным кодом, которая является ключевым компонентом для многих текущих коммерческих и открытых программных проектов..

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

  • Учебное пособие по Git: полное руководство: это учебное пособие по Udemy содержит полный обзор Git, включая историю его разработки. Читатели знакомятся с основными функциями системы, с разделами, посвященными настройке хранилища, отмене действий, ветвлению и объединению, а также интеграции через Github..

  • Учебное пособие по Git для начинающих: основы командной строки: это учебное видео предназначено для начинающих пользователей Git и тех, у кого есть хотя бы поверхностное понимание систем DVCS. В презентации представлен простой обзор системы с упором на основы командной строки..

  • Learn Git: учебник Git: представленный Tutorials Point, это всеобъемлющее введение и руководство по Git охватывает все основы системы контроля версий. Этот учебник включает в себя большое количество наглядных пособий, помогающих продемонстрировать Git в действии. К конкретным разделам относятся создание операций, выполнение и фиксация изменений, операции обновления, исправления и управление ветвями..

  • Учебное пособие по Git для начинающих: Краткое руководство по началу работы. Представленное Тимоти Кори, это обучающее видео представляет собой высокоэффективное введение в Git для начинающих. Использование примеров из реального мира делает этот урок особенно простым для понимания и понимания..

книги

Git – это универсальная система контроля версий, и для полной реализации ее потенциальных пользователей необходимо всестороннее понимание системы и ее возможностей. Онлайн-учебники могут предложить базовое введение в Git, но большинство из них ограничены в своей области.

Для более глубокого изучения Git и его использования разработчики и программисты захотят изучить некоторые из следующих книг.

  • Pro Git (2009) от Chacon и Straub: по рекомендации команды разработчиков Git, Chacon и Straub’s Pro Git предоставляют обзор управления распределенными версиями и разработки Git и GitHub. Авторы объясняют основы Git и его многочисленные особенности с точки зрения как программистов, так и руководителей проектов. Доступны как в печатном, так и в цифровом изданиях.

  • Контроль версий с помощью Git: мощные инструменты и методы совместной разработки программного обеспечения (2012) Лоелигера и МакКаллоу: это практическое руководство по Git переносит читателей от первоначальных концепций к продвинутым методам с использованием пошаговых примеров. Темы включают отслеживание, ветвление, объединение и управление изменениями кода с упором на совместную разработку программного обеспечения

    Мент.

  • Git in Practice (2014) от Mark McQuaid: лучше всего подходит для тех, кто уже знаком с основными принципами Git, в книге McQuaid подробно рассматриваются передовые методы оптимизации и улучшения проектов командной разработки. Git in Practice охватывает более 60 расширенных областей применения Git, включая визуализацию истории, расширенное ветвление, переписывание истории и аварийное восстановление..

Вывод

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

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

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

Git Cheatsheet

Git – это система управления версиями с открытым исходным кодом для использования при проектировании программного обеспечения и разработке веб-приложений. Следующий шпаргалка содержит выборку наиболее часто используемых инструкций командной строки Git.

Настройка инструментов

  • $ git config –global user.name «[имя]» – назначает имя для ваших транзакций фиксации

  • $ git config –global user.email «[адрес электронной почты]» – назначает электронную почту для ваших транзакций фиксации

  • $ git config –global color.ui auto – включает раскрашивание вывода командной строки

Создание хранилищ

  • $ git init [имя-проекта] – создает новый локальный репозиторий с указанным именем

  • $ git clone [url] – клонирует текущий репозиторий с его полной историей версий

Местные Изменения

  • $ git status – перечисляет все новые или измененные файлы для фиксации

  • $ git diff – показывает ссылки на файлы, не поставленные

  • $ git add [file] – снимок файла перед версионированием

  • $ git diff –staged – показывает различия между промежуточной и последней версией файла

  • $ git reset [file] – unstages файл при сохранении его содержимого

  • $ git commit – фиксирует ранее поставленные изменения

  • $ git commit -a – фиксирует все локальные изменения в заархивированных файлах

  • $ git commit -m «[описательное сообщение]» – постоянно записывает снимки файлов в истории версий

  • $ git log – показывает историю коммитов

  • $ git log -p [имя файла] – показывает историю изменений в конкретном файле

  • $ git blame [file] – показывает, какой пользователь изменил содержимое файла и когда

Филиалы и теги

  • $ git branch -av – перечисляет все существующие филиалы

  • $ git checkout [филиал] – переключить ветку HEAD

  • $ git checkout [new-branch] – создает новую ветку на основе текущего заголовка

  • $ git checkout – track [remote / branch] – создает новую ветвь отслеживания на основе удаленной ветви

  • $ git branch -d [branch] – удаляет локальную ветку

  • $ git tag [tag-name] – отмечает текущий коммит тегом

  • $ cat .git / HEAD – показывает, на что указывает HEAD или текущая ветвь

Обновления и публикации

  • $ git remote -v – вывести список всех настроенных удаленных репозиториев

  • $ git show remote [удаленный] – показывает подробную информацию из определенного удаленного хранилища

  • $ git remote add [короткое имя] [URL] – добавить новый удаленный репозиторий

  • $ git fetch [remote] – загрузить все изменения с указанного пульта без интеграции в HEAD

  • $ git pull [remote] [branch] – загрузить изменения из определенного удаленного репозитория и интегрировать / объединить в HEAD

  • $ git push [remote] [branch] – публиковать локальные изменения в удаленном хранилище

  • $ git branch -dr [remote / branch] – удаляет ветку в локальном удаленном репозитории

  • $ git push –tags – публиковать теги в хранилище

Слияние и перебазирование

  • $ git merge [branch] – объединяет указанную ветку с текущей HEAD

  • $ git rebase [branch] – переназначить текущий заголовок на ветку

  • $ git rebase –abort – прерывает предыдущую перезагрузку

  • $ git rebase – продолжить – продолжить перебазирование после разрешения конфликтов

  • $ git add [resolved-file] – вручную редактировать и разрешать конфликты и помечать файл как «разрешенный»

  • $ git mergetool – использовать инструмент слияния для автоматического разрешения конфликтов

Отменить

  • $ git reset –hard HEAD – отменяет все локальные изменения в рабочем каталоге

  • $ git checkout HEAD [имя файла] – отменяет все локальные изменения в указанном файле

  • $ git revert [commit] – отменить коммит, создав пересмотренный или обновленный коммит

  • $ git reset –hard [commit] – сбросить указатель HEAD на предыдущий коммит и отменить все последующие изменения

  • $ git reset [commit] – сбросить указатель HEAD на предыдущую фиксацию и сохранить все последующие изменения как неустановленные события

  • $ git reset –keep [commit] – сбросить указатель HEAD на предыдущий коммит и сохранить незафиксированные изменения

Это краткое справочное руководство представляет собой обзор наиболее распространенных команд командной строки, используемых с системой контроля версий Git. Его не следует рассматривать как исчерпывающий, но он может оказаться полезным для базовых операций программирования и кодирования.

Дальнейшее чтение и ресурсы

У нас есть больше руководств, учебных пособий и инфографики, связанных с кодированием и разработкой:

  • Контроль версий и хостинг: не только хостинг, но и сравнение систем контроля версий.

  • Ubuntu Primer: узнайте все об одном из самых популярных дистрибутивов Linux – отличной базе для хостинга MantisBT.

  • Объектно-ориентированное программирование: узнайте о широком спектре объектно-ориентированных языков программирования – некоторые могут вас удивить.

Выживет ли Интернет на краю света??

Задумывались ли вы, что крупная катастрофа будет делать с Интернетом? Проверьте нашу инфографику, переживет ли Интернет конец света?

Возможно, мы все можем быть уничтожены, но интернет будет жить.

Будет ли Интернет пережить конец света?
Выживет ли Интернет на краю света??

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me