Руководство по Git для начинающих
Если вы какое-то время использовали GNU / Linux, скорее всего, вы слышали о git. Вам может быть интересно, что такое git и как его использовать? Git — детище Линуса Торвальдса, который разработал его как систему управления исходным кодом во время работы над ядром Linux.
С тех пор он был принят многими проектами и разработчиками программного обеспечения из-за его высокой скорости и эффективности, а также простоты использования. Git также приобрел популярность среди писателей всех мастей, поскольку его можно использовать для отслеживания изменений в любом наборе файлов, а не только в коде.
Так что же такое git? Git — это конкретная реализация контроля версий, известная как распределенная система контроля версий, которая отслеживает изменения во времени в наборе файлов. Git позволяет отслеживать историю как локально, так и совместно. Преимущество совместного отслеживания истории заключается в том, что он документирует не только само изменение, но и то, кто, что, когда и почему стоит за этим изменением. При совместной работе изменения, внесенные разными участниками, впоследствии могут быть объединены в единый объем работы.
Что такое распределенная система контроля версий?
Так что же такое распределенная система контроля версий? Распределенные системы контроля версий не основаны на центральном сервере; на каждом компьютере есть полный репозиторий содержимого, хранящегося локально. Основным преимуществом этого является отсутствие единой точки отказа. Сервер можно использовать для сотрудничества с другими людьми, но если с ним случится что-то неожиданное, у каждого есть резервная копия данных, хранящихся локально (поскольку git не зависит от этого сервера), и ее можно легко восстановить на новом сервере. сервер.
Для кого предназначен git?
Я хочу подчеркнуть, что git может использоваться полностью локально отдельным человеком без необходимости подключаться к серверу или сотрудничать с другими, но это упрощает это при необходимости. Возможно, вы думаете что-то вроде «Вау, это звучит очень сложно. Наверное, действительно сложно начать работу с git ». Что ж, ошиблись бы вы!
Git специализируется на обработке локального контента. Как новичок, вы можете пока спокойно игнорировать все сетевые возможности. Сначала мы рассмотрим, как вы можете использовать git для отслеживания ваших личных проектов на локальном компьютере, затем рассмотрим пример использования сетевых функций git и, наконец, увидим пример ветвления.
Установка Git
Установить git в Gnu / Linux так же просто, как использовать диспетчер пакетов в командной строке, как если бы вы устанавливали любой другой пакет. Вот несколько примеров того, как это можно сделать в некоторых популярных дистрибутивах.
В системах на основе Debian и Debian, таких как Ubuntu, используйте apt.
$ sudo apt-get install git
В системах на базе Redhat Enterprise Linux и Redhat, таких как Fedora, используется yum.
$ sudo yum install git
(примечание: в Fedora версии 22 или новее замените yum на dnf)
$ sudo dnf install git
В Arch Linux используйте pacman
$ sudo pacman -S git
Настройка Git
Теперь git установлен в нашей системе, и для его использования нам просто нужно получить некоторую базовую конфигурацию. Первое, что вам нужно сделать, это настроить электронную почту и имя пользователя в git. Обратите внимание, что они не используются для входа в какую-либо службу; они просто используются для документирования того, какие изменения были внесены вами при записи коммитов.
Чтобы настроить электронную почту и имя пользователя, введите следующие команды в свой терминал, подставляя свой адрес электронной почты и имя в качестве значений в кавычках.
$ git config --global user.email "youremail@emaildomain.com" $ git config --global user.name "your username"
При необходимости эти две части информации можно изменить в любое время, повторно введя вышеуказанные команды с другими значениями. Если вы выберете это, тогда git изменит ваше имя и адрес электронной почты для исторических записей коммитов в будущем, но не изменит их в предыдущих коммитах, поэтому рекомендуется убедиться, что изначально нет ошибок.
Чтобы подтвердить свое имя пользователя и адрес электронной почты, введите следующее:
$ git config -l
Создание вашего первого проекта Git
Чтобы настроить проект git в первый раз, его необходимо инициализировать с помощью следующей команды:
$ git init projectname
В вашем текущем рабочем каталоге создается каталог с заданным именем проекта. Он будет содержать файлы / папки проекта (исходный код или другой основной контент, часто называемый рабочим деревом) вместе с управляющими файлами, используемыми для отслеживания истории. Git хранит эти управляющие файлы в .git
скрытом подкаталоге.
При работе с git вы должны сделать только что созданную папку проекта вашим текущим рабочим каталогом:
$ cd projectname
Давайте воспользуемся командой touch, чтобы создать пустой файл, который мы будем использовать для создания простой программы hello world.
$ touch helloworld.c
Чтобы подготовить файлы в каталоге к передаче в систему контроля версий, мы используем git add. Это процесс, известный как постановка. Обратите внимание, мы можем использовать .
для добавления всех файлов в каталог, но если мы хотим добавить только выбранные файлы или один файл, мы бы заменили .
его желаемым именем (именами), как вы увидите в следующем примере.
$ git add .
Не бойтесь брать на себя обязательства
Фиксация выполняется для создания постоянной исторической записи о том, как именно файлы проекта существуют в данный момент времени. Мы выполняем фиксацию с использованием -m
флага, чтобы создать историческое сообщение для ясности.
Это сообщение обычно описывает, какие изменения были внесены или какое событие произошло, что заставило нас захотеть выполнить фиксацию в это время. Состояние содержимого во время этой фиксации (в данном случае пустой файл «hello world», который мы только что создали) можно будет просмотреть позже. Мы посмотрим, как это сделать дальше.
$ git commit -m "First commit of project, just an empty file"
Теперь давайте продолжим и создадим некоторый исходный код в этом пустом файле. Используя выбранный вами текстовый редактор, введите следующее (или скопируйте и вставьте) в файл helloworld.c и сохраните его.
#include
int main(void)
{
printf("Hello, World!\n");
return 0;
}
Теперь, когда мы обновили наш проект, давайте продолжим и снова выполним git add и git commit.
$ git add helloworld.c $ git commit -m "added source code to helloworld.c"
Чтение журналов
Теперь, когда у нас есть две фиксации в нашем проекте, мы можем начать видеть, как может быть полезно иметь историческую запись изменений в нашем проекте с течением времени. Идите вперед и введите следующее в свой терминал, чтобы увидеть обзор этой истории на данный момент.
$ git log
$ git show 6a9eb6c2d75b78febd03322a9435ac75c3bc278e
Что дает следующий результат.
$ git reset --hard 220e44bb924529c1f0bd4fe1b5b82b34b969cca7
После выполнения этой последней команды, исследуя содержимое
helloworld.c
file покажет, что он вернулся в то же состояние, в котором находился во время нашей первой фиксации; пустой файл.
Работа с удаленным репозиторием
Теперь, когда мы ознакомились с основами работы с git локально, мы можем изучить, чем отличается рабочий процесс, когда вы работаете над проектом, размещенным на сервере. Проект может быть размещен на частном сервере git, принадлежащем организации, с которой вы работаете, или на сторонней службе хостинга онлайн-репозитория, такой как GitHub.
Для целей этого руководства предположим, что у вас есть доступ к репозиторию GitHub и вы хотите обновить проект, который вы там размещаете.
Во-первых, нам нужно клонировать репозиторий локально с помощью команды git clone с URL-адресом проекта и сделать каталог клонированного проекта нашим текущим рабочим каталогом.
$ git clone project.url/projectname.git $ cd projectname
Затем мы редактируем локальные файлы, внося желаемые изменения. После редактирования локальных файлов мы добавляем их в область подготовки и выполняем фиксацию, как в нашем предыдущем примере.
$ git add . $ git commit -m "implementing my changes to the project"
Затем мы должны отправить изменения, которые мы внесли локально, на сервер git. Следующая команда потребует от вас пройти аутентификацию с вашими учетными данными на удаленном сервере (в данном случае с вашим именем пользователя и паролем GitHub) перед отправкой изменений.
Обратите внимание, что изменения, внесенные в журналы фиксации таким образом, будут использовать адрес электронной почты и имя пользователя, которые мы указали при первой настройке git.
$ git push
Заключение
Теперь вы должны чувствовать себя комфортно, устанавливая git, настраивая его и используя его для работы как с локальными, так и с удаленными репозиториями. У вас есть практические знания, чтобы присоединиться к постоянно растущему сообществу людей, использующих мощь и эффективность git как распределенной системы контроля версий. Над чем бы вы ни работали, я надеюсь, что эта информация изменит ваше представление о рабочем процессе к лучшему.