Я помню, как впервые открыл 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!