Ваша первая лаборатория по Git

GitBeginner
Практиковаться сейчас

Введение

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

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

Создание вашей секретной лаборатории

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

Откройте терминал

Откройте терминал (не бойтесь, он не такой страшный, как кажется!) и введите эти магические слова:

cd ~/project
mkdir my-time-machine
cd my-time-machine

Вот что делает каждое из этих «заклинаний»:

  1. cd ~/project: Телепортирует вас в папку проектов.
  2. mkdir my-time-machine: Создает новую папку под названием "my-time-machine".
  3. cd my-time-machine: Перемещает вас внутрь вашей новой секретной лаборатории.

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

Инициализация машины времени (Git-репозитория)

Теперь, когда у нас есть секретная лаборатория, пришло время построить нашу машину времени! В мире программирования мы называем эту машину времени «репозиторием Git».

Введите эту команду в терминале:

git init

Вы должны увидеть сообщение, похожее на это:

Initialized empty Git repository in /home/labex/project/my-time-machine/.git/

Ого! Вы только что создали свою собственную машину времени! Но зачем нам нужна машина времени для кода?

Представьте, что вы пишете рассказ. Вы можете захотеть попробовать разные концовки или случайно удалить абзац, который вам очень нравился. Без Git вам пришлось бы вручную сохранять разные версии рассказа, в итоге получая файлы вроде "story_final.txt", "story_final_v2.txt", "story_final_REALLY_FINAL.txt". Знакомо?

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

Проверка состояния машины времени

Теперь, когда у нас есть машина времени, давайте посмотрим, что она может нам рассказать. В Git мы делаем это с помощью команды git status. Это все равно что спросить у машины времени: «Что происходит прямо сейчас?»

Попробуйте сами:

git status

Вы увидите нечто подобное:

On branch master

No commits yet

nothing to commit (create/copy files and use "git add" to track)

Это может выглядеть немного запутанно, давайте разберем по пунктам:

  • "On branch master": Представьте ветку как временную шкалу. "master" — это основная временная шкала вашего проекта.
  • "No commits yet": Коммит (commit) — это как точка сохранения в видеоигре. Мы еще не создали ни одной точки сохранения.
  • "nothing to commit": Git нечего записывать, потому что мы еще не создали ни одного файла.

Вы можете спросить: «Зачем все это нужно просто для сохранения файлов?» Отличный вопрос! В отличие от обычного сохранения, Git позволяет хранить множество версий проекта во времени. Это значит, что вы можете свободно экспериментировать, зная, что всегда сможете вернуться к предыдущему состоянию, если что-то пойдет не так. Это как бесконечная кнопка «отменить» для всего вашего проекта!

Создание вашего первого файла

Теперь давайте создадим что-нибудь, что наша машина времени сможет отслеживать. Начнем с простого сообщения в файле:

echo "Hello, Future Me" > message.txt

Эта команда создает новый файл message.txt с текстом "Hello, Future Me" внутри.

Давайте проверим, что мы написали:

cat message.txt

Вы должны увидеть:

Hello, Future Me

Отлично! Мы создали наш первый файл. Но именно здесь начинается магия Git. Сейчас этот файл существует на вашем компьютере, но Git его еще не отслеживает. Это как если бы мы написали записку, но еще не положили ее в нашу капсулу времени (репозиторий Git).

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

Повторная проверка состояния

Теперь, когда мы создали файл, давайте спросим нашу машину времени, что она видит. Снова запустите команду git status:

git status

На этот раз вы увидите изменения:

On branch master

No commits yet

Untracked files:
  (use "git add <file>..." to include in what will be committed)
        message.txt

nothing added to commit but untracked files present (use "git add" to track)

Захватывающе! Git заметил наш новый файл, но сообщает, что он «неотслеживаемый» (untracked). Это одна из крутых особенностей Git — он не отслеживает автоматически каждый файл в вашей папке. Это дает вам полный контроль над тем, какие изменения вы хотите включить в историю проекта.

Вы можете подумать: «Почему бы просто не отслеживать всё автоматически?» Представьте, что вы работаете над огромным проектом. У вас могут быть файлы, которые не нужно сохранять в истории — например, личные заметки или временные файлы. Git позволяет выбирать только важное, сохраняя историю проекта чистой и понятной.

На следующем шаге мы скажем Git, что хотим отслеживать этот файл. Именно здесь Git начинает казаться суперсилой — вы вот-вот создадите свою первую точку сохранения во времени!

Подготовка первой точки сохранения

Теперь мы сообщим Git, что хотим включить message.txt в нашу следующую точку сохранения (или «коммит» на языке Git). Мы делаем это с помощью команды git add:

git add message.txt

Эта команда не выводит никакого текста, но она дала Git команду начать отслеживание message.txt.

Давайте снова проверим статус, чтобы увидеть изменения:

git status

Теперь вы должны увидеть:

On branch master

No commits yet

Changes to be committed:
  (use "git rm --cached <file>..." to unstage)
        new file:   message.txt

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

Представьте, что вы готовите капсулу времени. Команда git add — это решение о том, что именно вы хотите положить в капсулу, а коммит (который мы сделаем следующим) — это запечатывание капсулы. Это позволяет вам тщательно выбирать, что попадет в каждую точку сохранения истории вашего проекта.

Эта функция невероятно полезна в больших проектах. Вы можете изменить десять файлов, но захотеть зафиксировать изменения только в трех из них. Область подготовки Git (staging area), где сейчас находится message.txt, позволяет сделать именно это!

Создание первой точки сохранения (Коммит)

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

Вот команда для создания коммита:

git commit -m "Send a message to the future"

Вы увидите вывод, похожий на этот:

[master (root-commit) a1b2c3d] Send a message to the future
 1 file changed, 1 insertion(+)
 create mode 100644 message.txt

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

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

Представьте, что вы пишете школьное эссе. При обычном сохранении у вас есть только последняя версия. Но с Git у вас могут быть точки сохранения: «Первый черновик», «Добавлено заключение», «Исправлено введение» и так далее. Вы можете вернуться к любой из этих точек, если возникнет необходимость!

Просмотр журнала путешествий во времени

Теперь, когда мы сделали первый коммит, давайте посмотрим на историю нашего проекта. Мы можем сделать это с помощью команды git log:

git log

Вы увидите нечто подобное:

commit a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6q7r8s9 (HEAD -> master)
Author: Your Name <your.email@example.com>
Date:   Mon Aug 7 10:00:00 2023 +0000

    Send a message to the future

Эта запись в журнале показывает нам несколько важных вещей:

  • Уникальный идентификатор коммита (длинная строка букв и цифр)
  • Кто сделал коммит
  • Когда был сделан коммит
  • Сообщение к коммиту, которое мы написали

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

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

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

Резюме

Поздравляем, путешественник во времени! Вы только что завершили свое первое приключение с Git. Давайте вспомним, чему вы научились:

  1. Как создать репозиторий Git (вашу машину времени) с помощью git init.
  2. Как проверять состояние репозитория с помощью git status.
  3. Как создавать файлы и подготавливать их к сохранению с помощью git add.
  4. Как создавать коммит (точку сохранения во времени) с помощью git commit.
  5. Как просматривать историю проекта с помощью git log.

Вы можете спросить: «Зачем столько хлопот ради простого сохранения файлов?» Вот почему Git так важен:

  1. Детальная история: У вас есть полная летопись проекта. Вы видите, что, когда и почему изменилось.
  2. Эксперименты: Git позволяет свободно пробовать новое. Вы можете создавать разные версии проекта, не боясь испортить оригинал.
  3. Командная работа: При работе в группе Git позволяет легко отслеживать вклад каждого участника.
  4. Резервное копирование: Каждый Git-репозиторий — это полноценная резервная копия проекта со всей его историей.

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

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

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

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