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

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

💡 Этот учебник переведен с английского с помощью ИИ. Чтобы просмотреть оригинал, вы можете перейти на английский оригинал

Введение

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

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


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL linux(("Linux")) -.-> linux/BasicSystemCommandsGroup(["Basic System Commands"]) git(("Git")) -.-> git/SetupandConfigGroup(["Setup and Config"]) git(("Git")) -.-> git/BasicOperationsGroup(["Basic Operations"]) linux(("Linux")) -.-> linux/BasicFileOperationsGroup(["Basic File Operations"]) git(("Git")) -.-> git/BranchManagementGroup(["Branch Management"]) linux/BasicSystemCommandsGroup -.-> linux/echo("Text Display") git/SetupandConfigGroup -.-> git/init("Initialize Repo") git/BasicOperationsGroup -.-> git/add("Stage Files") git/BasicOperationsGroup -.-> git/status("Check Status") git/BasicOperationsGroup -.-> git/commit("Create Commit") linux/BasicFileOperationsGroup -.-> linux/cat("File Concatenating") git/BranchManagementGroup -.-> git/log("Show Commits") subgraph Lab Skills linux/echo -.-> lab-92739{{"Ваша первая лабораторная работа с Git"}} git/init -.-> lab-92739{{"Ваша первая лабораторная работа с Git"}} git/add -.-> lab-92739{{"Ваша первая лабораторная работа с Git"}} git/status -.-> lab-92739{{"Ваша первая лабораторная работа с Git"}} git/commit -.-> lab-92739{{"Ваша первая лабораторная работа с Git"}} linux/cat -.-> lab-92739{{"Ваша первая лабораторная работа с Git"}} git/log -.-> lab-92739{{"Ваша первая лабораторная работа с Git"}} end

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

Прежде чем мы окунемся в мир 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 (где сейчас находится файл 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. Подробная история: С Git у вас есть полная история вашего проекта. Вы можете видеть, что изменилось, когда это произошло и почему.
  2. Экспериментирование: Git позволяет вам свободно экспериментировать. Вы можете создавать разные версии вашего проекта, не боясь потерять исходную работу.
  3. Совместная работа: При работе в команде Git позволяет легко увидеть, кто сделал какие изменения и почему.
  4. Резервное копирование: Каждый репозиторий Git представляет собой полную резервную копию вашего проекта, включая всю его историю.

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

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

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

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