Я помню, как впервые открыл GitHub: ничего не имело смысла. Это выглядело очень устрашающе и сложно. Я знал, что GitHub — это какой-то ресурс или инструмент, который используют программисты, но мне казалось, что я никогда не смогу его понять. В некотором отношении это чувство все еще частично верно. Я не мастер GitHub или Git, и я уверен, что всегда будет что-то новое, что я могу узнать об этих инструментах. Но сначала, что такое Git? Что такое Гитхаб?

Git — это программное обеспечение, отслеживающее изменения в файлах, в основном используемое программистами для совместной работы/обмена своей работой. Git позволяет отслеживать разные версии истории исходного кода и даже разделять код на разные ветки. Важно отметить, что Git устанавливается и используется локально, то есть на вашем компьютере. Однако GitHub — это облачная служба хостинга, которая позволяет вам хранить свой код в облаке. Другими словами, ваши локальные репозитории (архивы кода) могут храниться в облаке, чтобы делиться ими с другими людьми, позволяя им делать копии или редактировать.

На очень высоком (и упрощенном) уровне абстракции Git — это локальный инструмент, который упорядочивает файлы и отслеживает историю версий, а GitHub — это облачная служба хостинга, которая поддерживает вышеупомянутые функции, обеспечивая совместную работу и совместное использование кода.

Если это звучит как много, не беспокойтесь об этом. В конце этой статьи я приведу очень конкретный пошаговый пример того, как работать как с Git, так и с GitHub. Но сначала позвольте мне рассказать вам о времени, которое мне потребовалось, чтобы понять, как использовать GitHub всего за две минуты…

Из сковороды в огонь

Это был первый семестр моего первого года обучения в Университете Рутгерса, хотя опыт оказался совершенно противоположным тому, что я ожидал. Из-за пандемии университет проводился полностью в онлайн-режиме. Хотя я ценил (и до сих пор ценю) время, проведенное дома, мне было странно оказаться в ловушке дома еще на целый год, ожидая в своей академической карьере, что 2020 год станет годом, когда я, наконец, смогу покинуть дом и поступить в университет». лично." Было бы странно использовать такую ​​терминологию — лично — по отношению к моей 15-летней версии, совершенно не подозревающей о надвигающейся пандемии.

Я уже немного привык к дистанционному обучению, так как последняя часть моего последнего года обучения в старшей школе также была удаленной. Опыт поступления в университет, предположительно новая глава в моей жизни, показался мне странно знакомым. Будь то занятия, клубы или просто общение с друзьями, все происходило онлайн.

Одним из мероприятий, в которых мне удалось поучаствовать удаленно, был хакатон Рутгерса, который проводится два раза в год, HackRU. Поскольку я никогда не участвовал в онлайн-хакатоне (не говоря уже о каком-либо хакатоне), я действительно понятия не имел, чего ожидать. Хакатон был 24-часовым мероприятием, которое проходило примерно с полудня до полудня следующего дня. Суть хакатонов в том, чтобы создавать проекты или хаки, которые решают какую-то проблему или делают что-то крутое. Обычно разрешается работать в группах, поэтому в итоге я посетил (здесь я использую это слово вольно, так как все, что мне нужно было делать, это продолжать сидеть за компьютером) хакатон с одним из моих друзей. Мы оба понятия не имели, что хотим создать для хакатона, и в итоге потратили большую часть времени на решение головоломок CTF.

Крайний срок подачи проектов был ровно в 12 часов дня, а было уже 11 часов утра. Нам нужно было не только (а) что-то закодировать, но и (б) убедиться, что это работает, (в) записать демо и (г) загрузить на веб-сайт подачи заявок на хакатон. У нас было меньше часа, чтобы все это произошло, и мы начали мозговой штурм идей. Примерно через минуту мы договорились о создании очень простого переводчика азбуки Морзе — идея проекта, с которой мы уже были знакомы. Мы решили сделать это на Java, языке, с которым мы оба были знакомы лучше всего. Мы закончили простой проект из одного файла примерно за 30–40 минут. Он был способен кодировать английские фразы в азбуку Морзе, а также декодировать азбуку Морзе в английские буквы. После того, как мы убедились, что все работает так, как задумано, мы начали продвигаться к отправке проекта, что вы могли бы подумать, что это простой и понятный процесс. Оказалось, что это не так.

Примерно в 11:40 я поспешно настроил OBS Studio для записи своего экрана. Я записал короткую демонстрацию нашей программы «Код Мо», выполняющую как кодирование, так и декодирование, и загрузил ее на YouTube, чтобы иметь ссылку для отправки. К тому времени, когда видео было загружено на YouTube и я заполнил большую часть формы отправки, было уже 11:58 (время летит, я думаю?). Казалось, что мы едва успеем. Именно тогда мы столкнулись с проклятым текстовым полем Репозиторий GitHub.

В одном из текстовых полей формы отправки хакеры могли предоставить ссылку на репозиторий GitHub для своих проектов. К несчастью для Moe’s Code, это текстовое поле было обязательным для отправки. Другими словами, мы не сможем отправить проект без ссылки на GitHub. Буквально за две минуты до конца мы погрузились в полную панику.

Никто из нас никогда раньше не пользовался GitHub, и у нас было две минуты, чтобы сгенерировать ссылку, которая вела бы к «репозиторию» нашего проекта на GitHub, что бы это ни значило. Даже не дав себе ни секунды на раздумья, я направился на GitHub, быстро вошел через уже созданную каким-то чудом учетную запись (хотя раньше никогда ею не пользовался) и начал выяснять, как создать репозиторий с кодом на это. Находясь на совершенно чужом для меня сайте, мне очень повезло, что я быстро нашел кнопку для создания репозитория, назвав ее просто «взломать». Затем я посмотрел, где я мог бы начать загрузку файлов. К счастью, GitHub выделяет все эти основные функциональные кнопки очень ярко-зеленым цветом, поэтому я нашел кнопку для добавления файлов, добавил один Java-файл нашего проекта, взял ссылку из заголовка браузера, вставил ее в форму отправки и нажал кнопку отправки, и осталось всего несколько секунд.

К тому времени, когда наш проект был представлен, и мы получили возможность отдышаться, было уже 12 часов дня. Если бы мы были на 15 или 20 секунд медленнее, я уверен, что мы бы пропустили дедлайн.

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

* Оглядываясь назад, мы, вероятно, могли бы вставить случайный текст в текстовое поле; наш исходный код был частично показан в видео, что служит доказательством того, что проект создается нами. Еще лучше, мы могли бы создать репозиторий на GitHub и сразу вставить ссылку в форму отправки. После нажатия кнопки «Отправить» у нас было достаточно времени, чтобы выяснить, как загружать файлы, поскольку судьи не торопились просматривать представленные материалы.

Основы Git и GitHub

Теперь, когда мы закончили с историей, давайте перейдем к основам использования Git и GitHub. Поскольку вы не можете по-настоящему научиться, прочитав кучу команд, я настоятельно рекомендую вам следовать этому примеру, в котором мы создаем репозиторий GitHub и помещаем в него код с помощью команд Git.

Во-первых, нам нужно установить Git. Вы можете найти инструкции по установке Git на свой компьютер на странице Установка Git в документации Git. Если у вас есть машина с Windows, как у меня, просто перейдите на https://git-scm.com/download/win. Справедливое предупреждение, эта ссылка приведет к автоматическому запуску загрузки. Если вы хотите больше узнать об установке и Git в целом, я бы рекомендовал сначала перейти на страницу Установка Git.

После установки Git вы можете проверить его работу, открыв командную строку и введя git --version. Вы должны увидеть что-то вроде этого:

* Дополнительный совет: несколько быстрых способов открыть командную строку в Windows: (а) нажать клавишу Windows, ввести «cmd» и нажать клавишу ВВОД, или (б) выполнить Win + R, набрав «cmd» и нажмите ENTER (второй вариант особенно полезен, так как Windows Run запоминает последнее, что вы запускали; вы можете пропустить ввод «cmd», если вы уже делали это в прошлый раз)

После этого вы захотите создать учетную запись GitHub. На главной странице давайте начнем с создания репозитория GitHub. Хотя ваша страница может немного отличаться от моей, вы все равно должны увидеть несколько вариантов создания репозитория. Первый вариант слева:

Просто щелкнув эту опцию, вы попадете на страницу создания репозитория. Вы также можете попасть на эту страницу, зайдя в правый верхний раздел домашней страницы, щелкнув раскрывающееся меню на символе «плюс» и нажав «Новый репозиторий».

Оба варианта должны привести вас на страницу, которая выглядит следующим образом:

Здесь есть много вариантов, и может показаться, что их много, но требуется только имя репозитория. Введите имя, которое вам нравится, и нажмите «Создать репозиторий». После того, как вы создали репозиторий, вы увидите интерфейс, который выглядит следующим образом:

Есть много команд и несколько вариантов настройки репозитория, но все, на чем нам нужно сосредоточиться, это ссылка вверху, которая заканчивается на .git. Скопируйте эту ссылку (или скопируйте текущую адресную строку браузера, ссылка, которая не заканчивается на .git, также работает) и запустите свой любимый редактор кода.

Я собираюсь использовать VS Code для создания здесь простого файла Markdown, но вы даже можете использовать что-то столь же простое, как Блокнот или любой другой встроенный в вашу операционную систему текстовый редактор.

Вот еще один крутой трюк для пользователей Windows. Этот очень быстро открывает VS Code в определенном каталоге с помощью командной строки. Я создал папку под названием «medium-example», куда будет помещаться весь мой код. На данный момент он пуст:

Но если я выделю адресную строку проводника, наберу «cmd» и нажму клавишу ВВОД, экземпляр командной строки откроется в этом каталоге файлов. После этого введите в терминале команду code ., и VS Code откроется в текущем каталоге.

В VS Code я собираюсь написать очень простой документ Markdown. Если вы просто хотите проверить функциональность Git и GitHub, не стесняйтесь копировать две строки Markdown снизу.

# This is a README
Push me to GitHub!

Далее мы собираемся использовать некоторые команды Git, чтобы отправить наш код на GitHub. Для этого нам понадобится терминал в корневом каталоге проекта. VS Code имеет встроенный терминал, но на самом деле я просто снова буду использовать командную строку для согласованности. Результат должен быть одинаковым в любом случае.

Во-первых, нам нужно инициализировать локальный репозиторий Git с помощью этой команды:

git init

Затем мы собираемся использовать эту команду, чтобы связать удаленный репозиторий с локальным репозиторием Git на вашем компьютере:

git remote add origin https://github.com/kevinfengcs88/medium-example.git

Эта команда также работает со ссылкой «не git», как упоминалось ранее (подчеркивание также является просто автоматическим форматированием, весь текст, который вводится в ваш терминал, должен быть простым).

Теперь, когда локальный репозиторий Git связан с репозиторием GitHub, размещенным в облаке, давайте загрузим все измененные файлы (у нас есть только один, README.md) с помощью следующей последовательности команд:

git add .
git commit -m "first commit"
git push origin master

git add . размещает все измененные файлы для отправки, git commit -m "first commit" создает фиксацию или снимок проекта в текущее время, а git push origin master отправляет код из локальной master ветки в удаленную origin ветку, которую мы создали ранее.

Строка в кавычках после -m в команде фиксации может быть любой; это просто сообщение, сопровождающее коммит, который его идентифицирует. В большинстве случаев вы хотите включить что-то, описывающее, как код/какие файлы были изменены.

Теперь, если вы посмотрите на ссылку вашего репозитория GitHub и обновите страницу, вы увидите, что интерфейс настройки исчез, а код, который вы отправили, доступен для просмотра всем!

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

Это ни в коем случае не исчерпывающее руководство по Git и GitHub. Всегда есть чему поучиться, и, читая документацию по Git, вы найдете массу полезных команд, облегчающих процесс разработки. Если вы когда-нибудь столкнетесь с какими-либо ошибками Git, я рекомендую найти ошибку и щелкнуть некоторые ссылки Stack Overflow. Многое из того, что я узнал при использовании Git, было получено благодаря просмотру Stack Overflow, и я настоятельно рекомендую вам сделать то же самое. Повозитесь с Git и сломайте его, чтобы он выдавал вам различные ошибки, и найдите решение для этих ошибок. Поначалу Git и GitHub могут показаться пугающими, но однажды я тоже так почувствовал. Хотя это может показаться незначительным, изучение основ Git и GitHub стало для меня действительно поучительным опытом. Некоторые из моих проектов на GitHub на самом деле были вызваны моим желанием узнать больше о Git сразу после того, как я обнаружил, что могу без особых усилий отправлять код с помощью терминала своего компьютера. Так что дерзайте, создавайте что-то великое с помощью кода — и делитесь этим с мощью Git и GitHub!