Введение в Git: от установки до основных команд
Введение в Git — это почти всегда пошаговая инструкция, но не всегда достаточно понятная. Именно поэтому мы дополнили гайд схемами, которые сделают информацию максимально доступной.
Примечание Вы читаете улучшенную версию некогда выпущенной нами статьи.
Как пользоваться
Удалённый репозиторий — не самый удачный перевод на русский английского remote repository . Он значит, что репозиторий находится на удалении от вас — не на вашем компьютере, а не то, что ваш код уничтожен.
Обычно, при разработке программы есть сервер, где хранится оригинал исходного кода. Все разработчики копируют этот репозиторий на свой локальный компьютер. После разработки какой-то функциональности изменения отправляются обратно — из локального репозитория разработчика в удалённый.
В первый раз, чтобы скачать весь удалённый репозиторий на свой компьютер, его нужно клонировать. Команда git clone создаст полную копию локально, в которую можно будет вносить изменения.
Со временем, в удалённом репозитории могут появляться новые изменения, которые необходимо подтягивать в локальный репозиторий. Получить все изменения из удалённого репозитория можно командой:
¶ Установка пароля
После авторизации нужно установить пароль для вашего аккаунта в GitLab.
Нажмите на вашу иконку в правом верхнем углу и перейдите в раздел «Настройки» (settings).
Затем перейдите во вкладку «Пароль» (password).
- Укажите ваш новый пароль и сохраните его.
Изменения в репозитории на 2-ом компьютере
Поработаем теперь с копией репозитория на другом (рабочем) компьютере. Внесем изменения в файл index.html : добавим заголовок h2.
Даже в редакторе VScode напротив файла index.html мы видим букву M . Это говорит о том, что файл index.html модифицирован/изменен. Убедимся в этом при помощи команды git status.
Теперь следует добавить файл index.html в индекс — команда git add. Потом создать коммит — команда git commit. И отправить локальный репозиторий с внесенными изменениями на GitHub — команда git push.
Здесь следует понимать, что если мы клонируем репозиторий, то он автоматически связан с удаленным . Поэтому достаточно ввести команду git push без ключа u , имени origin и ветки main , так как эта связь уже есть.
Теперь если перейти на удаленный репозиторий, то мы увидим новый коммит, созданный на другом компьютере .
Вроде бы ничего нового. Все это было проделано в предыдущей статье.
Но не будем забывать , что сейчас мы работаем на другом/рабочем компьютере (ноутбуке). И допустим, что продолжить работу мы сможем только дома. А на домашнем компьютере нет тех изменений, которые были сделаны на работе.
Ветки в Git
Наличие (main) рядом с именем папки означает, что в настоящее время мы находимся в ветке под названием main. Что такое ветка (англ branch)? Считайте, что это копия проекта в определенный момент времени, которую можно изменять независимо от других веток.
Рассмотрим пример. Если бы мы писали книгу, у нас могли бы быть следующие ветки:
- main branch (главная ветка)
- table-of-contents branch (ветка содержания)
- chapter-1 branch (ветка первой главы)
- chapter-2 branch (ветка второй главы)
- и так далее.
Ветка main — главная. Это место, где мы будем собирать все содержимое воедино, в законченную книгу.
Создавая дополнительные ветки, мы можем разделять нашу работу на сколь угодно много частей, а затем отслеживать их по отдельности.
Допустим, я работаю над Главой 1, а вы — над Главой 2. Мы можем создать две разные ветки, chapter-1 и chapter-2 , каждая из которых будет отдельной копией текущего состояния книги.
Это даст нам возможность работать над своими главами по отдельности, не наступая друг другу на ноги и без риска случайно перезаписать написанное коллегой. У каждого будет своя рабочая копия.
Когда один из нас закончит работу над своей главой, он сможет добавить содержимое этой главы обратно в ветку main . Когда мы оба закончим работу, в ветке main будет и Глава 1, и Глава 2.
Несмотря на все, что я сказал, временами коллеги все же перезаписывают изменения, внесенные товарищами по команде, или меняют один и тот же кусок кода, и тогда им приходится утрясать различия. Но об этом позже.
Примечание. Главная ветка может называться не main , а master : это зависит от проекта. Функциональной разницы нет.
Верните всё назад!
Любой коммит можно отменить, щёлкнув по нему правой кнопкой мыши и выбрав Revert this commit. Так, если мы проведём эту процедуру с последним коммитом и запушим изменения на GitHub, то файл goose там исчезнет. В истории изменений данное действие будет видно, как ещё коммит, отменяющий изменения выбранного (анти-коммит). Чтобы посмотреть историю коммитов, нужно нажать на History.
Откатывать коммиты можно также через веб-интерфейс (на сайте GitHub).
Репозиторий коробок
Наша миссия — клонировать репозиторий ящиков , а затем создайте приложение ящиков.
Репозиторий имеет ту же структуру, что и Atom. Там список папок и файлов, а ниже — содержимое файла readme. Он следует стандартной схеме репозитория, но это меньший по размеру проект, поэтому в нем меньше папок и файлов.
Файл readme тоже короче. В нем есть раздел под названием «Разработка». В этом разделе есть ссылка под названием «Построение из исходного кода». Если мы перейдем по этой ссылке, мы должны найти информацию нам нужно.
Обычно для навигации по репозиторию и поиска нужной информации требуется легкое отслеживание, но это не сложно. Внимательно прочтите все на странице репозитория. Иногда информация присутствует, но может не отображаться на видном месте.
Git clone
Всегда клонируйте новые репозитории, над которыми работаете. То есть, закачивайте копии файлов репозитория на свой локальный компьютер. Существует множество способов клонирования репозитория. Однако я объясню технологию на примере командной строки.
Допустим, вы захотели клонировать репозиторий со скриншота, представленного выше. Для начала скопируйте ссылку клонирования (см. выше). Затем откройте терминал и через cd перейдите в область на компьютере, куда будут копироваться файлы. Если вы хотите клонировать ветку master , то напечатайте git clone и вставьте ссылку, как это показано ниже:
Для клонирования определенной ветки репозитория сделайте следующее:
git config
Команда git config позволяет вам настроить ваш Git (или отдельный репозиторий) из командной строки. С помощью неё можно определить все – от информации о пользователи до настроек поведения репозитория. Ниже показано нескорлько наиболее используемых настроек.
Использование
Определяет имя автора, которое будет использоваться при всех коммитах в текущем репозитории. Точно так же вы можете использовать флаг —global , что бы сохранить изменения о пользователе во всех репозиториях на локальной машине:
Определяет почтовый адрес автора для его коммитов.
Создаёт короткое имя для команды Git.
Определяет тектовый редактор, который будет использоваться такими командами как git commit для всех пользователей на этой машине. Аргумент должен быть именем исполняемого файла, который запускает желаемый редактор (например – vi ).
Открывает основной конфигурационный файл для ручного редактированияю
Обуждение
Все опции конфигурации хранятся в обычных текстовых файлах. Как правило – вам потребуется выполнить настройку Git только в первый раз, когда вы начинаете работу на новой машине, и практически во всех случаях вы можете использовать параметр —global .
Git хранит опции в трёх различных файлах, что позволяет вам разделить опции для отдельных репозиториев, пользователей и всей системы:
- /.git/config – настройки отдельного репозитория;
- ~/.gitconfig – настройки отдельного пользователя – именно тут харнятся опции, добавленные с помощью —global ;
- $(prefix)/etc/gitconfig – общесистемные настройки.
В случае конфликтов – локальные настройки имеюти преимущество над настройками пользователя, а настройки пользователя – над общесистемными. Если вы откроете любой из этих файлов – вы увидите что-то вроде такого:
Вы можете вручную редактировать файл, что даст такой же результат, как и использование git config .
Пример
Первое, что вы можете захотеть сделать после установки Git – это определить ваше имя и почтовый ящик, а так же задать некоторые значения по умолчанию. Обычная конфигурация может выглядеть так: