Привет, начинающие разработчики! После освоения консоли следующим важным шагом является знакомство с Git. Git – это как машина времени для вашего кода. Он позволяет отслеживать все изменения, вносить правки, возвращаться к предыдущим версиям и работать над проектом совместно с другими разработчиками. Это основа современного мира разработки, и сегодня мы сделаем первые шаги!
Представьте, что вы пишете книгу. Без Git у вас будет один файл с текстом. Если вы захотите вернуться к предыдущей версии, вам придется постоянно делать копии файла, что быстро превратится в хаос. Git же автоматически запоминает каждое изменение, позволяя легко вернуться к любой главе, написанной в прошлом.
В этой статье мы собрали самые необходимые команды Git, чтобы вы могли быстро начать работу над своими проектами.
Инициализация репозитория
Первый шаг в использовании Git – создание репозитория. Репозиторий – это папка, в которой Git хранит всю информацию об изменениях вашего проекта.
git init
(initialize) – “Начать отслеживать изменения”. Эта команда превращает текущую папку в Git-репозиторий.
Допустим, вы создали папку my-new-website. Перейдите в эту папку через консоль (cd my-new-website) и выполните git init. Теперь Git следит за всеми изменениями в этой папке.
Синхронизация локального и удаленного репозиториев
После того, как вы создали репозиторий на своем компьютере (локальный репозиторий), вы захотите синхронизировать его с удаленным репозиторием, например, на GitHub. Это позволит вам хранить код в облаке, делиться им с другими разработчиками и работать над проектом совместно.
git remote add origin <URL>
: “Связать локальный репозиторий с удаленным”. Эта команда устанавливает связь между вашим локальным репозиторием и удаленным репозиторием, расположенным по указанному URL. URL – это адрес репозитория на GitHub, GitLab или другом сервисе.
Если вы создали репозиторий my-project на GitHub, команда будет выглядеть так: git remote add origin https://github.com/YourUsername/my-project.git. Замените YourUsername на ваше имя пользователя на GitHub.
git remote -v
(verbose): “Проверить связь”. Эта команда показывает список связанных удаленных репозиториев и их URL.
origin https://github.com/YandexPracticum/first-project.git (push)
После выполнения git remote add origin запустите git remote -v, чтобы убедиться, что связь установлена правильно. Вы должны увидеть URL вашего удаленного репозитория.
git push -u origin main
: “Отправить код в облако (в первый раз)”. Эта команда отправляет все изменения из вашего локального репозитория в удаленный репозиторий origin в ветку main. Флаг -u устанавливает связь между локальной и удаленной веткой, чтобы в дальнейшем можно было использовать более короткую команду git push. Важно: Ваша ветка может называться master, а не main. Если это так, используйте git push -u origin master.
Добавление изменений в последний коммит: исправляем ошибки
Иногда после создания коммита вы понимаете, что забыли добавить какой-то файл или допустили опечатку в комментарии. Git позволяет исправить последний коммит с помощью команды git commit --amend
.
git commit --amend --no-edit
: “Добавить изменения в последний коммит (без изменения комментария)”. Эта команда добавляет изменения из staging area в последний коммит, не изменяя комментарий к коммиту.
git commit –amend –no-edit
Вы сделали коммит, но забыли добавить новый файл style.css. Добавьте файл в staging area (git add style.css) и выполните git commit --amend --no-edit, чтобы добавить файл в последний коммит.
git commit --amend -m "<Новый комментарий>"
: “Изменить комментарий к последнему коммиту”. Эта команда изменяет комментарий к последнему коммиту на указанный.
«Откат» файлов и коммитов: возвращаемся к прошлому
Git позволяет отменять изменения и возвращаться к предыдущим версиям файлов и коммитов.
git restore --staged <файл>
: “Убрать файл из staging area”. Эта команда перемещает файл из staging area обратно в состояние “изменен” или “неотслеживаемый”.
Вы случайно добавили файл secret.txt в staging area. Выполните git restore --staged secret.txt, чтобы убрать его из staging area.
git restore <файл>
: “Вернуть файл к последней сохраненной версии”. Эта команда возвращает файл к последней версии, которая была зафиксирована с помощью коммита или добавлена в staging area.
Вы случайно удалили часть кода из файла index.html и хотите вернуть его к последней сохраненной версии. Выполните git restore index.html.
git reset --hard <хеш коммита>
: “Удалить все изменения до указанного коммита”. Эта команда удаляет все незакоммиченные изменения из staging area и рабочей зоны, возвращая проект к указанному коммиту. Используйте эту команду с особой осторожностью!
Вы сделали несколько коммитов, но решили, что они были ошибкой. Выполните git log, чтобы найти хеш коммита, к которому хотите вернуться, а затем выполните git reset --hard <хеш коммита>.
Просмотр изменений: что именно поменялось
Команда git diff
показывает разницу между различными версиями файлов.
git diff
: “Показать изменения в рабочей зоне”. Эта команда показывает изменения, которые были внесены в файлы в рабочей зоне (modified-файлы).
index 1234567..abcdef8 100644
— a/index.html
+++ b/index.html
@@ -1,4 +1,4 @@
<!DOCTYPE html>
<html>
<head>
– <title>My Website</title>
+ <title>Мой веб-сайт</title>
Вы изменили текст в файле index.html и хотите посмотреть, что именно поменялось. Выполните git diff.
git diff <хеш коммита1> <хеш коммита2>
: “Показать разницу между двумя коммитами”. Эта команда выводит разницу между двумя коммитами.
git diff --staged
: “Показать изменения, добавленные в staging area”. Эта команда показывает изменения, которые были добавлены в staging area (staged-файлы).
Это только начало вашего путешествия в мир Git.
Изучив эти базовые команды, вы сможете уверенно работать с Git, отслеживать изменения в своих проектах и сотрудничать с другими разработчиками. Помните, что практика – лучший способ освоить Git. Экспериментируйте, делайте коммиты, создавайте ветки и не бойтесь совершать ошибки. Git всегда поможет вам вернуться к предыдущему состоянию!
В следующих статьях мы рассмотрим более продвинутые темы, такие как ветвление, слияние и разрешение конфликтов. Удачи!