Git: введение для начинающих

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

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

Например, как вы делитесь обновлениями базы кода с другим разработчиком, работающим над тем же проектом? Вы бы постоянно отправляли по электронной почте измененные файлы туда и обратно? Что делать, если вы одновременно работаете с одними и теми же файлами? Как вы обнаруживаете и объединяете эти изменения?

Именно поэтому были созданы системы контроля версий (VCS), позволяющие одновременно сотрудничать, совместно использовать и объединять изменения в проекте.

Несмотря на то, что существует ряд систем контроля версий, таких как CVS , SVN , Mercurial и т. Д., Git стал самой популярной системой на сегодняшний день.

Git, распределенный контроль версий, был выпущен в 2005 году и создан Линусом Торвальдсом, который также является создателем Linux. Он настолько популярен, что лежит в основе множества многомиллиардных компаний, таких как GitHub, GitLab и BitBucket от Atlassian, в которых размещаются публичные и частные репозитории Git.

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

Что такое Git?

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

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

Обычно вы взаимодействуете с Git через инструмент командной строки с соответствующим названием git . Хотя сейчас существует довольно много инструментов с графическим интерфейсом (например, GitHub Desktop , SourceTree и GitKraken ), которые помогают вам использовать некоторые из наиболее распространенных функций, таких как фиксация, ветвление и слияние. Поскольку Git немного сложен в использовании, некоторые новички предпочитают начинать с этих инструментов с графическим интерфейсом. И хотя они могут быть чрезвычайно полезными и помочь вам работать продуктивно, я бы порекомендовал вам хотя бы освоиться с версией командной строки, чтобы углубить ваше понимание.

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

мастер-деревоgit

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

мерзавец дерево светкой

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

git дерево с объединеннойветкой

Основы Git

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

Прежде всего, для начала вам нужно установить git в своей системе. Большинство дистрибутивов Mac и Linux поставляются с предустановленным Git, но на всякий случай, если ваш нет, вот как это сделать:

MacOS

Установите Git с помощью инструментов командной строки Xcode или установщика по этой ссылке .

Дистрибутивы на основе Debian

 $ sudo apt install git-all 

Дистрибутивы на основе RPM

 $ sudo dnf install git-all 

Окна

Загрузите установщик Git для Windows и следуйте инструкциям.

После установки вы можете создать новый репозиторий, указав каталог своего проекта (проект Node.js в нашем примере) и используя команду init :

 $ cd my-project 
 $ git init 

Это инициализирует Git, но прежде чем что-либо будет отслежено, вам необходимо явно добавить файлы проекта в репозиторий:

 $ git add package.json config.json 

Git упрощает этот процесс и позволяет использовать подстановочные знаки для массового выбора файлов:

 $ git add src/*.js 

Теперь наши файлы еще не привязаны к Git, они просто инсценированы. Мы можем просматривать подготовленные файлы с помощью команды status :

 $ git status 
 On branch master 
 
 Initial commit 
 
 Changes to be committed: 
 (use "git rm --cached <file>..." to unstage) 
 
 new file: config.json 
 new file: package.json 
 new file: src/index.js 
 new file: src/api.js 

Теперь мы готовы зафиксировать наши изменения в репозитории с помощью команды commit :

 $ git commit -am "Initial commit" 

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

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

Чтобы завершить наш короткий пример, давайте отправим наши изменения в удаленный репозиторий, чтобы другие разработчики могли получить эти изменения. Чтобы это сработало, нам сначала нужно создать репозиторий в учетной записи GitHub, который мы затем можем использовать для отправки:

 $ git remote add origin https://github.com/scottwrobinson/my-project.git 
 $ git push origin master 

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

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

Ресурсы, чтобы узнать больше

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

Licensed under CC BY-NC-SA 4.0
comments powered by Disqus