Что вдохновило меня на написание этой статьи, так это то, насколько бесполезными были многие статьи о Git и Github, которые я читал в Интернете, когда я начинал как разработчик, для меня, абсолютного новичка. Я не знала так много слов, которыми меня постоянно подбрасывали эти статьи или видео. Такие слова, как система управления версиями, проект, репозиторий, «git для github — то же, что порно для pornhub», поскольку понять эти вещи, даже такие простые слова, как «проект», сложно, когда они используются в незнакомом контексте и даже когда они кажутся совершенно нормальными и общеупотребительными словами. для опытных разработчиков мы, новички, остаемся в замешательстве. Некоторые из нас сдаются, в то время как другие справляются либо потому, что им повезло, либо потому, что они были достаточно смелыми, чтобы сразу приступить к работе с вещами, которых они не понимают. Ладно, хватит болтать, давайте к делу.

Что такое Git (без вашего обычного «GIT — СИСТЕМА ВЕРСИРОВАНИЯ, КОТОРАЯ ОТСЛЕЖИВАЕТ ИЗМЕНЕНИЯ, КОТОРЫЕ ВЫ ВНОСИТЕ В СВОИ ПРОЕКТЫ»)?

Git — это то, что вы можете использовать для записи всех изменений, которые вы когда-либо вносили в проект. Что такое проект в этом контексте? Ну, скажем, весь исходный код программы, которую вы сделали. Такой проект может иметь несколько файлов, например, проект Android (который представляет собой весь исходный код и другие связанные файлы, которые используются для создания приложения. Весь этот файл поддерживается и создается разработчиком, частично или полностью, и эти файлы затем преобразуются в вещи, которые могут работать на вашем телефоне Android). Git позволяет вам отслеживать любые изменения (при условии, что вы сохраняете эти изменения, используя способ сохранения изменений git), которые вы внесли в такой проект, поэтому вы всегда можете вернуться к этому этапу. Вы знаете свою обычную функцию отмены-повтора в MS Word? Думайте о git как о способе сделать именно это, но преимущество в том, что он постоянен, он не исчезнет после того, как вы закроете и сохраните свой проект, он всегда останется там. Он также является более продвинутым и универсальным и позволяет вам управлять своим проектом очень полезными способами. Но есть одна загвоздка, это не работает для каждого небольшого изменения, такого как добавление строки или изменение шрифта (может, но обычно не используется таким образом по причинам, которые я объясню позже). Есть еще одна загвоздка, в отличие от отмены-повтора, вы должны вручную указать git, чтобы он записал сделанное вами изменение. (Это то, что я имел в виду под «пока вы сохраняете эти изменения, используя способ сохранения изменений git»), и вы говорите git сделать это либо с помощью какого-то стороннего приложения, которое позволяет вам использовать git без необходимости иметь дело с черный экран и куча команд, предоставляемых git или через командную строку. Сохранение изменения (или указание git, что вы хотите, чтобы он запомнил только что сделанное вами изменение, чтобы вы всегда могли вернуться к нему) называется фиксацией или фиксацией изменения. Самая короткая форма команды командной строки, которую вы можете использовать для совершения фиксации, — git commit, или вы можете использовать любое стороннее приложение, которое хотите.

По сути, происходит то, что когда вы вносите изменения в любой из ваших файлов в проекте, который вы сказали git отслеживать (да, вы должны сначала сообщить git о том факте, что вы хотите превратить свой проект во что-то, что git должен отслеживать, т. е. искать изменения и позволять вам фиксировать эти изменения и использовать другие функции git для управления этим проектом), git мгновенно распознает, что вы внесли изменение, даже если это что-то столь же тривиальное, как добавление одного лишнего пробела где-то в конец файла в вашем большом проекте из 1000 файлов. Вы можете внести все изменения, которые хотите, прежде чем вы захотите, чтобы git сохранил это изменение, а затем вы можете зафиксировать это изменение, что-то вроде контрольной точки в игре. Git сохранит запись об этом изменении, и вы всегда сможете вернуться к нему. Это не то же самое, что отмена-повтор, когда вам не нужно нажимать кнопку сохранения после каждого изменения, и вы можете быстро вернуться к изменениям, таким маленьким, как ввод пробела, без необходимости сообщать функции отмены-повтора, чтобы запомнить это изменение. но предполагается, что это для более крупных изменений и длительных записей изменений. Он также очень универсален в сочетании с Github.

Вы указываете git начать отслеживать проект, используя команду git init, находясь внутри каталога (или папки), в котором расположены все файлы вашего проекта. Вы также можете назвать этот каталог «корневым каталогом вашего проекта». Когда вы заставляете git отслеживать все файлы внутри папки, вы превращаете эту папку в то, что называется репозиторием git (не совсем так, но вам не нужно изучать точное значение репозитория, если вы еще этого не знаете. Просто знайте, что все внутри этого проекта и все, что связано с экземпляром git, который отслеживает файлы внутри этого проекта, то есть файлы, связанные с git или Github, вместе составляют репозиторий git. Это именно то, что git отслеживает). Когда вы создаете (или инициализируете) репозиторий git, вы заметите, что git создает дополнительную папку с именем «git». Эта папка содержит всю информацию о вашем git-репозитории, например, когда он был создан, какие изменения были внесены до сих пор, какие настройки вы определили для этого конкретного проекта, все. Когда вы вносите изменения и фиксируете эти изменения, информация о них сохраняется в папке git. Никогда не рекомендуется вручную что-либо менять в этой папке, но если вы хотите превратить корневой каталог вашего проекта в обычный каталог, который не постоянно находится в списке наблюдения git, вы можете просто удалить эту папку (и если вы достаточно продвинуты, некоторые файлы вне его, которые вы, возможно, создали и связаны с git).

Что такое Github (без вашего обычного «GITHUB — это GIT, ЧТО PORNHUB — это порно»)?

Скажем, вы хотите, чтобы все файлы в вашем репозитории git, то есть в корневом каталоге вашего проекта, который включает в себя все, что связано с вашим проектом и папкой git, были в Интернете для доступа к вам. Таким образом, вы можете работать вместе с другими людьми, и любые изменения, которые вы вносите (и фиксируете), автоматически уведомляются об этом другим людям в вашей команде. Или, может быть, вы просто хотите иметь доступ к своему проекту из разных мест или просто хотите сделать резервную копию всего вашего проекта вместе со всей информацией о его экземпляре git (тот факт, что ваш проект теперь является репозиторием git, частью экземпляр git). Теперь вы можете спросить: «Почему бы мне просто не загрузить свою папку на Google Диск или OneDrive и получить к ней доступ из разных мест в сети оттуда?» И это совершенно нормально, и вы можете это сделать. Но дело в том, что у вас нет командной строки на OneDrive или Google Диске. Кроме того, Github позволяет очень динамично синхронизировать вносимые вами изменения. Если вы загружаете свой репозиторий git в OneDrive, каждый раз, когда вы вносите изменения в свой репозиторий, вам придется повторно загружать его или, по крайней мере, повторно загружать всю папку git (поэтому информация о коммите также копируется) и файлы, в которые вы внесли изменения. . Это не очень идеально. С Github вы можете связать удаленный репозиторий (просто выделенный каталог, который находится в Интернете, подключенный к вашей учетной записи Github, частный или общедоступный, в зависимости от ваших настроек, вместо того, чтобы храниться локально на вашем устройстве и может содержать все в корневом каталоге ваш проект или, другими словами, родительский каталог папки git), и вы можете легко синхронизировать вещи между вашим локальным репозиторием, который хранится на вашем устройстве, и вашим удаленным репозиторием, репозиторием, который вы создали для своего проекта на Github. Самая простая итерация команды для отправки всей информации обо всех изменениях, внесенных вами в ваш репозиторий git локально с момента последней синхронизации с вашим онлайн-репозиторием, — это git push. Конечно, вам нужно настроить его, прежде чем вы сможете использовать эту команду, потому что git волшебным образом не знает о вашей учетной записи Github и о том, какой удаленный репозиторий в вашей учетной записи Github вы хотите использовать в качестве репозитория для вашего проекта.

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

Вот один плейлист, который вы обязательно должны посмотреть, так как я считаю, что это лучший плейлист для понимания git и github: https://www.youtube.com/playlist?list=PLB5jA40tNf3v1wdyYfxQXgdjPgQvP7Xzg