Введение в git для новичков
Одно из главных препятствий, с которым сталкивается начинающий разработчик программного обеспечения – отсутствие информации для новичков. Об инструментах или технологиях, которые необходимо освоить неопытному программисту, редко пишут понятным языком. Даже если тема очень простая, необходимо прочитать несколько статей, чтобы получить о ней полное представление.
Если такой подход усложняет ваше обучение и работу, у нас есть решение. В этой статье мы поделимся своим опытом и расскажем про git. Это великолепная система, которую нетрудно освоить и добиться значительных результатов в программировании. Если вы до сих пор пишете базовые сайты HTML / CSS с помощью простого текстового редактора, отложите это дело в сторону. Пара минут чтения об инструменте, которым пользуются ведущие разработчики, позволят выйти на новый уровень создания веб-проектов.
Что такое git, и зачем это нужно?
Если в общем, то это одна из множества разных систем контроля версий (VCS), но что это значит? Из официальной документации git-scm.com :
Система контроля версий — это система , записывающая изменения одного или множества файлов в течение времени и позволяющая вернуться позже к определённой версии .
Ок, а если совсем просто, то git — это прокаченная кнопка «Сохранить». Сохранение в git зовётся коммит (commit). Когда мы делаем коммит, мы создаём копию (на самом деле не совсем, но об этом позже) состояния всех файлов в рабочей директории — git репозитории.
Git можно использовать для сохранения состояния файлов любого типа, не обязательно только для разработки ПО. Но именно в этом случае, в процессе работы необходимо постоянно вносить изменения в большое количество разных файлов, и git в данном случае мощный инструмент для просмотра изменений, дающий возможность откатывать изменения в случае ошибок, или совмещать изменения нескольких разработчиков.
Почему я должен использовать git?
- Это крутая кнопка сохранения которая делает копию состояния вашего проекта на определенный момент времени
- Это инструмент который помогает работать над разными версиями вашего проекта одновременно. Например, создавайте новое меню вашего сайта в одной ветке, вносите мелкие правки шаблона в другой и совмещайте всё это по мере готовности
- Это потрясающая система для взаимодействия нескольких людей в рамках проекта
Итак, рассмотрим подробнее почему следует использовать git, когда есть такие сервисы как Google Drive, Яндекс.Диск или Dropbox для сохранения резервной копии, а версии вообще можно делать как ctrl+c и ctrl+v?
Возьмём для примера несколько сценариев.
Предположим мы только начали разработку вашего нового сайта (пусть это будет портфолио работ). У нас есть набор CSS-файлов, которые мы начинаем править чтобы закончить работы над расположением меню. Что-то делаем, делаем идём смотреть результат и видим что получилось не то, что ожидали: меню съехало в пикселях, исправить не проблема, но хуже что заголовок страницы пропал, совсем.
Ctrl+C, Ctrl+Z — отменяем наши правки по меню, смотрим результат: заголовка по прежнему нет. Что-то сломало общий шаблон страницы, но что и где именно мы не знаем. Возможно где-то пропустили точку с запятой, случайно удалили строчку или ещё что-то сходу не очевидное.
Работа с использованием git обычно строится так, что мы делаем git commit (сохраняем состояние) на каждом логически законченном этапе. В данном случае у нас было бы состояние перед тем как мы начали наши правки по меню, то самое состояние в котором заголовок ещё на месте. Мы могли бы просто вернуться к этому состоянию, и начать правки заново, либо могли бы наглядно посмотреть что именно изменилось в проекте с последнего сохранённого состояния.
Выше простой пример персонального сайта на базовых HTML и CSS. Представьте что у вас большой комплексный проект, с реальными пользователями в онлайне, и при обновлении бекэнда перестал работать модуль оплат. Критически важно до решения проблемы в короткие сроки вернуться к работоспособной версии. В этом случае git незаменимый инструмент на этапе разработки.
Как мне начать использовать git?
Для начала нужно иметь базовые навыки работы с командной строкой (терминалом) — ещё одним важным инструментом в руках разработчика. В рамках данного материала не нужно быть экспертом, но что это такое знать нужно.
Windows: самый простой способ для пользователей Windows это Git Bash https://gitforwindows.org/ — скачайте и установите перед тем как мы пойдём дальше.
Самое лучшее это учиться на примерах, с чего мы и начнём. Откройте терминал (в Linux или Mac, или Git Bash в Windows). У большинства пользователей Mac и Linux git уже установлен и готов к работе, в чём можно убедиться набрав команду
Если git уже установлен в вашей системе, система сообщит в выводе об установленной версии:
Если же нет, ничего страшного. Со способами установки в вашей системе можно ознакомиться по ссылке https://gist.github.com/derhuerst/1b15ff4652a867391f03
И так, git установлен и готов к работе. Для примера будем использовать простой проект: статичный HTML сайт.
Как использовать git в моём проекте?
Возьмём для примера директорию website в которой лежит файл index.html и директории scripts и styles, с расположенными в них файлами main.js и style.css.
Первым делом необходимо проинициализировать новый git репозиторий в директории. Для этого перейдем в нужную директории и выполним соответствующую команду:
После успешного выполнения команды получаем подтверждение в создании репозитория:
Initialized empty Git repository in /home/projectpulse/dev/website/
также можно заметить что в проекте появилась новая директория .git. В дальнейшем если понадобится удалить репозиторий, достаточно будет удалить эту директорию.
Настройка имени и адреса электронной почты в git
Каждый коммит имеет своего автора, с записанными именем и адресом электронной почты. Авторов проекта можно посмотреть используя команду git log. Для настройки можно воспользоваться следующими двумя командами:
git config —global user.name «Ваше имя»
git config —global user.email your@examplemail.ru
Делаем первый коммит
Только что мы создали репозиторий и настроили имя с адресом электронной почты. Пришло время сделать наш первый коммит, который сохранит текущее состояние нашего проекта, и который будет являться начальной точкой нашего репозитория. Сделаем это следующими командами:
git commit -m «Initial commit — project start»
Первой строкой мы добавили в коммит все файлы директории в коммит (а также добавили их к последующему контролю за изменениям). Второй строкой мы создали коммит с комментарием. Обычно комментарий отражает состояние проекта или сделанные изменения которые собраны в коммите. Совет: старайтесь писать комментарии кратко, но ёмко.
С этого момента и далее, любые изменения в файлах директории будут записаны и сопоставлены с начальным состоянием. Чтобы проверить это, внесём изменения в какой-либо файл (например index.html) и запустим команду
Вывод команды даёт нам понимание что произошло в проекте с момента последнего коммита
No commits yet
Untracked files: (use «git add . » to include in what will be committed)
index.html
nothing added to commit but untracked files present (use «git add» to track)
Данный вывод говорит нам о том, что есть неучтённые изменения в одном файле index.html. Соберём новый коммит добавив в него изменения
Точкой мы просим добавить все изменения файлов в директории. Но чаще приходится добавлять изменения пофайлово или же отдельными директориями
И наконец сохраним наши изменения создав новый коммит
git commit -m «Modify index file to fix menu»
На этом всё! Git имеет множество других полезных функций, особенно для совместной работы (ветвления, слияния) которые будут рассмотрены в следующих статьях. Подписывайтесь и следите за обновлениями 🙂
Знакомство с Git и GitHub: руководство для начинающих
Ищите, с чего бы начать изучение Git и GitHub? Хотите поработать с другими? Усердно трудитесь над проектом? Или вдруг заметили, что заслужить уважение среди технарей можно своим присутствием на GitHub?
Тогда эта статья специально для вас!
На самом деле, в Git нет ничего сложного. Если вы быстро читаете и не тратите уйму времени на установку и регистрацию, то начать работать с GitHub вы сможете уже через 10 минут.
Прочитав данную статью вы научитесь клонировать существующий репозиторий, создавать ветки, вносить изменения и отправлять запросы на изменения. Параллельно освоите работу в терминале, терминальные команды и редактирование файла Markdown (.md).
Если вы сможете все это сделать, то можно считать, что вы успешно справились с задачей. А еще вы сможете поучаствовать в своем первом open-source проекте — Стене на GitHub .
Если вы хотите стать настоящим профессионалом в Git и GitHub, то придется еще многому научиться. Однако информации ниже будет вполне достаточно для изучения основ.
Что такое Git и GitHub?
Git — это система управления версиями, которая пришлась по душе практически всем — от разработчиков до дизайнеров. GitHub можно считать соцсетью для хранения кода. Это настоящая Мекка для технарей. Здесь вы можете попрактиковаться в разработке и придумать что-то свое, найти множество open-source проектов, передовых технологий, различных функций и дизайнов.
На GitHub вы учитесь и участвуете в других проектах, храните код для работы или учебы, берете код других проектов и вникаете во все детали. А еще вы можете создавать сайты бесплатно напрямую из репозитория! ( Научиться можно здесь )
Если вы хотите работать на GitHub, то вовсе не обязательно быть гуру в программировании, ведь все самое основное делается прямо на сайте.
Не лишним будет разобраться с терминалом, поскольку терминальные команды действительно упрощают жизнь.
Если в статье вы видите команду с угловыми скобками: , то смело удаляйте эти скобки и меняйте их содержимое на нужный вам текст.
Пример: git add . Здесь вы можете написать нечто подобное: git add hello_world.py . Это означает, что вы хотите добавить в репозиторий файл под названием hello_world.py.
Для начала необходимо запомнить следующие терминальные команды:
Эти команды вам пригодятся в случае, если вы будете работать с другими людьми или захотите внести какие-то изменения в проект и протестировать их до создания коммита.
Не лишней будет и вот такая команда:
О ней мы также поговорим ниже.
(Если вы работаете на Mac, то у вас уже установлен терминал. Нажмите на иконку с лупой в верхнем правом углу экрана и напечатайте слово terminal).
Шаг 1: Регистрация и установка
Зайдите на GitHub и создайте свой аккаунт. В принципе, этим можно и ограничиться. При желании можете установить Git . Но для работы с GitHub это вовсе не обязательно. Однако если вы планируете заниматься проектами на локальном компьютере, то установка вам все-таки нужна. Можете скачать установщик или установить файлы через менеджер пакетов .
Теперь перейдите в терминал, и начнем работу. Если хотите задать одно имя пользователя для всех репозиториев на компьютере, то напишите:
git config — global user.name “ ”
замените на свое имя в кавычках. Можете написать все, что угодно. Если хотите задать имя только для одного репозитория, то удалите из команды слово global.
Теперь напишите свой адрес электронной почты. Проследите, чтобы он совпадал с адресом, указанным при регистрации на GitHub.
При желании можете скрыть свой электронный адрес. Это сделать несложно, подробнее написано здесь . По сути, вам нужно проставить 2 галочки в своем GitHub-аккаунте.
Теперь вы готовы к работе с Git на локальном компьютере.
Начнем с создания нового репозитория на сайте GitHub. Вы также можете выполнить git init и создать новый репозиторий из директории проекта.
Репозиторий состоит из трех «деревьев». Первое «дерево» — это рабочая директория, в которой хранятся актуальные файлы. Второе — это index или область подготовленных файлов. А еще есть head — указатель на ваш последний коммит.
Вариант 1. Я уже знаком с терминалом
Вот как начать работу с Git из терминала.
Если у вас есть директория проекта, то просто перейдите в терминал, а в самой директории проекта выполните команду
Если хотите инициализировать проект со всеми файлами из директории проекта, то выполните команду
Допустим, в вашем проекте есть папка new_project. Вы можете перейти в нее из окна терминала и добавить локальный репозиторий. Это делается через следующую команду:
cd new_project
git init
В вашем проекте появилась новая скрытая директория с названием.git. Именно здесь Git хранит все, что ему нужно для отслеживания проекта. Теперь вы можете последовательно добавлять файлы в область подготовки:
или добавьте сразу все файлы через:
Создать коммит с этими изменениями можно через команду:
Если изменения вас устраивают, напишите:
и отправьте эти изменения в репозиторий. Проверить, есть ли изменения для отправки, можно в любое время по команде:
При внесении изменений следует обновить и сами файлы:
Создайте коммит, добавьте нужное сообщение и отправьте этот коммит в репозиторий.
Вот и все! Теперь вы можете инициализировать репозиторий, создавать коммиты с файлами и сообщениями, а также отправлять коммиты в ветку master.
Если с этим все понятно, то переходите к части 2: «Учимся работать с другими» , в которой рассматривается градация веток и совместная работа над проектами.
Вариант 2. Я вообще ничего не знаю
Этот вариант выбирают совсем новички в разработке. Вполне возможно, у вас уже есть целая папка с файлами проекта для размещения на GitHub, но вы не знаете, с чего начать.
Ну что ж, приступим к делу!
Допустим, вы хотите создать новый репозиторий. Это место, где будет «жить » ваш проект. Если вы не хотите создавать новый репозиторий, то можете склонировать уже существующий. Именно так вы копируете чужой проект или берете нужную вам информацию для работы/учебы. Мы еще к этому вернемся, но чуть позже.
Репозиторий — это место, в котором вы систематизируете свой проект. Здесь вы храните файлы, папки, видео, изображения, блокноты Jupyter Notebook, наборы данных и т.д. Перед началом работы с Git необходимо инициализировать репозиторий для проекта и правильно его подготовить. Это можно сделать на сайте GitHub.
Лучше сразу добавлять в репозиторий README -файл с информацией о проекте. Это можно сделать в момент создания репозитория, поставив галочку в соответствующем поле.
- Перейдите на сайт GitHub. Нажмите на значок + в верхнем правом углу, а затем выберите New repository .
- Придумайте имя репозитория и добавьте короткое описание.
- Решите, будет ли этот репозиторий размещаться в открытом доступе или останется закрытым для просмотра.
- Нажмите Initialize this repository with a README для добавления README-файла. Настоятельно рекомендую снабжать все ваши проекты файлом-описанием, ведь README — это первая вещь, на которую люди обращают внимание при просмотре репозитория. К тому же, здесь можно разместить нужную информацию для понимания или запуска проекта.
При желании можете уже сейчас начинать работать над проектом. Добавляйте файлы, вносите в них изменения и т.д. напрямую с сайта GitHub. Однако конечный результат подобной деятельности может вас немного огорчить.
Вносить изменения в проект можно двумя способами. Вы можете изменять файлы/блокноты на компьютере либо делать это на сайте GitHub.
Допустим, вам захотелось подкорректировать README-файл на сайте GitHub.
- Для начала перейдите в ваш репозиторий.
- Для выбора файла кликните по его названию (например, кликните по README.md для перехода к файлу-описанию).
- В верхнем правом углу вы увидите иконку с карандашом. Нажмите на нее для внесения изменений.
- Напишите короткое сообщение, передающее суть изменений (и подробное описание, если сочтете это нужным).
- Нажмите кнопку Commit changes .
Вы успешно внесли изменения в README-файл своего нового репозитория! Обратите внимание на небольшую кнопку на картинке выше. Она позволяет создавать новую ветку этого коммита и добавлять Pull request. Запомните ее, скоро к ней вернемся.
Как вы видите — ничего сложного!
Лично я предпочитаю работать с файлами на локальном компьютере, а не на сайте GitHub. Поэтому давайте научимся и этому.
Подайте мне вот этот проект!
Возможно, вы захотите клонировать свой новый репозиторий для дальнейшей работы с ним на локальном компьютере. Либо у вас уже есть существующий репозиторий, который вы хотели бы клонировать.
Для клонирования репозитория на компьютер перейдите в репозиторий на GitHub и нажмите большую зеленую кнопку под названием Clone or download (разумеется, вы можете просто скачать репозиторий и избежать всех заморочек с терминалом. Но я в вас верю, поэтому не будем сдаваться!). Проследите, чтобы появилась надпись Clone with HTTPS . Теперь нажмите на иконку буфера обмена для копирования-вставки (либо выделите ссылку и скопируйте ее).
Откройте терминал и перейдите в директорию для копирования репозитория. Например, для перехода на Рабочий стол напечатайте вот это:
Затем клонируйте туда репозиторий по следующей команде:
Все просто! Не забудьте изменить информацию в угловых скобках на нужную вам. И удалите сами скобки .
Если вы не очень хорошо ориентируетесь в терминале, то переход по директориям можно осуществлять через команду cd. Например, откройте терминал и напечатайте ls для отображения перечня доступных директорий. Вполне возможно, что в этом списке вы сразу увидите директорию Desktop. Либо напечатайте cd Desktop. Далее выполните команду git clone и склонируйте репозиторий на Рабочий стол.
Бывает и так, что вместо перечня расположений, вы видите различные имена пользователей. Тогда до того, как перейти в Desktop, вам потребуется выбрать нужного пользователя через команду cd (замените на нужное вам имя). Затем снова напечатайте ls, чтобы увидеть весь список. И вот теперь, увидев в списке Desktop, смело печатайте cd Desktop. Сейчас уже можно выполнять git clone!
Если вдруг в терминале вы захотите «откатиться» на шаг назад, то напишите cd ..
Новый GitHub-репозиторий, склонированный на рабочий стол, готов! Данная команда создает точную копию репозитория в вашей системе. Здесь вы сможете с ним работать, редактировать, индексировать изменения, создавать коммиты с изменениями и отправлять их на GitHub.
Совсем не обязательно создавать репозиторий на Рабочем столе. Клонировать можно в любое место на компьютере. Команду git clone можно выполнять и сразу после открытия терминала. Однако, если вы не очень любите копаться в папках на компьютере, то неплохо будет разместить проект на виду, то есть на Рабочем столе…
Если хотите просто покопаться в каком-то проекте, то вместо клонирования можете сделать форк проекта на GitHub. Для этого нажмите кнопку Fork в верхнем правом углу сайта. Так вы добавите копию этого проекта в свои репозитории и сможете вносить туда любые изменения без вреда для оригинала.
