Git и Github: руководство для новичков

Опубликовано: 2017-08-15

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

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

Что такое Git?

Что ж, я вам скажу, что это не просто то, как мы, южане, прогоняем варминтов с наших подъездов.

Как я уже сказал выше, Git - это программа для управления версиями. Его создал Линус Торвальдс, изобретатель Linux. Вам не обязательно использовать Linux, чтобы использовать git - вы также можете использовать его в Windows и Mac.

Git позволяет вам легко отслеживать все изменения, которые вы и ваша команда вносите во время разработки программного обеспечения. Вы все используете один репозиторий кода, который обрабатывается независимо, а затем снова объединяется. Вам также не нужно быть постоянно подключенным, потому что проект сохраняется как локально на каждой машине, так и удаленно (возможно, на Github).

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

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

По сути, если вы не используете git, вы кодируете с одной рукой, связанной за спиной.

Требуемый словарь

Когда вы впервые начинаете использовать git, это может напугать. Команды и концепции могут показаться совершенно чуждыми, если вы никогда раньше не использовали какую-либо форму управления версиями. Однако вы получите их очень быстро.

Репозиторий:

Часто называется репо . Репозиторий - это набор файлов и папок, которые вы используете git для отслеживания. Репозиторий состоит из всей истории изменений проекта вашей командой. Это большая коробка, в которую вы и ваша команда бросаете свой код.

Github:

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

Совершить:

Думайте об этом как о сохранении вашей работы. Когда вы фиксируете репозиторий, это как будто вы собираете файлы в том виде, в каком они существуют в данный момент, и помещаете их в капсулу времени. Фиксация будет существовать только на вашем локальном компьютере, пока она не будет отправлена ​​в удаленный репозиторий.

Толкать:

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

Ветвь:

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

Слияние:

Когда ветка отшлифована, свободна от ошибок (по крайней мере, насколько вы можете судить) и готова стать частью основной кодовой базы, она будет объединена с основной веткой. Слияние - это то, на что это похоже: объединение двух ветвей вместе. Любой новый или обновленный код станет официальной частью кодовой базы. Любой, кто отошел от точки слияния, также будет иметь этот код в своей ветке.

Клонировать:

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

Вилка:

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

Запрос на вытягивание:

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

Начало работы и необходимые команды

Это было не так уж плохо, правда?

Верно. Теперь, когда у вас есть четкое представление о том, что такое git, пора покопаться и испачкать руки.

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

Как установить Git

Git (вероятно) не был установлен на вашем компьютере, поэтому мы должны установить его там. К счастью, установить git очень просто, независимо от того, используете ли вы Linux, Mac или Windows.

Для Linux откройте терминал и введите sudo apt-get install git-all (если вы работаете в Ubuntu. Если нет, есть список всех команд установки пакетов Linux для любого другого дистрибутива).

В Windows это так же просто. Вы скачиваете установщик и запускаете его.

На Mac вам просто нужно открыть терминал и ввести git . Если git не установлен, вы увидите следующее:

Как только вы нажмете «Установить», все готово.

Видеть? Супер просто!

Использование Git

Вот где начинается самое интересное. Теперь, когда у вас установлен git, пора… git-r-done! Ха! Но действительно пора вникнуть и научиться использовать этот удивительный маленький кусочек волшебства командной строки. И что может быть лучше для начала, чем Github?

Так что заходите и зарегистрируйтесь для своей новой учетной записи Github (или войдите, если она у вас уже есть, и я буду с вами через секунду).

Github бесплатен для общедоступных репозиториев, и вы можете иметь частные за определенную плату. (К вашему сведению: вы можете получить бесплатные частные репозитории на Bitbucket, который является менее известным, но интересным местом). По большей части, бесплатный вариант на Github подходит для большинства людей (и он работает как живое резюме!), Но некоторым клиентам и работодателям потребуется конфиденциальность и безопасность, поэтому неплохо иметь варианты.

После этого вы готовы создать свой первый репозиторий! После того, как вы подтвердите свою электронную почту и все эти забавные вещи.

Сначала вам нужно настроить репозиторий в Github. Вы можете сделать это на своем компьютере, а затем тоже загрузить, но проще сначала сделать это в Интернете.

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

Однако я инициализирую репозиторий с помощью файла README, который вы должны использовать для хранения базовой документации по проекту. Я обычно использую их как средство отслеживания основных изменений, списков дел и различных заметок во время работы. Но это по личным проектам. У разных руководителей команд будут разные ожидания.

Теперь, когда репо существует на Github, пришло время перенести его на локальный компьютер с помощью клонирования. Справа от репозитория, чуть выше списка файлов, вы увидите зеленую кнопку с надписью «Клонировать или загрузить». Щелкните по нему, и вы увидите это:

Поскольку мы клонируем, мы можем игнорировать все, кроме части, касающейся клонирования с использованием HTTPS. Вам не придется ничего настраивать. Вам просто нужно будет ввести свое имя пользователя и пароль при нажатии.

Однако сначала вам нужно настроить, где вы хотите, чтобы ваше репо размещалось на вашем локальном компьютере. Откройте свой терминал. (Пользователи Windows, найдите и откройте программу под названием Windows Powershell. Я также предлагаю вам щелкнуть правой кнопкой мыши и выбрать «Запуск от имени администратора».)

Первая команда, которую вам нужно изучить, - это ls . Это перечислит все в текущем каталоге. Для простоты давайте просто сделаем нашу папку dev в домашнем каталоге компьютера. Вы можете использовать mkdir dev, чтобы создать каталог с именем dev . Довольно просто, правда? Если вы снова выполните ls , вы увидите новую папку в списке.

Затем вы хотите перейти в новый каталог с помощью cd dev , которая является командой для изменения каталога . Видите, командная строка совсем не страшна! Если вам нужно вернуться в предыдущий каталог, просто используйте cd ...

После того, как вы в новой папке Dev, пришло время мерзавца этой партии началось. Хе-хе-хе.

Начните с копирования URL-адреса, который появляется после того, как вы нажмете зеленую кнопку «Клонировать или загрузить» на Github. Это будет выглядеть примерно так: https://github.com/bjk1337/myfirstrepo.git

Команды для клонирования репозитория Git из Github

  • git clone https://github.com/bjk1337/myfirstrepo.git
  • ls
  • cd myfirstrepo - или как вы назвали свое репо
  • ls

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

Нитти Гитти Песчаный

Теперь, когда у вас есть репо на вашем компьютере, вам нужно научиться его использовать. Итак, давайте перенесемся немного вперед и скажем, что вы какое-то время работали над классным проектом и у вас есть несколько файлов в каталоге. Пришло время зафиксировать и отправить их на Github.

Добавление и фиксация в репозитории Git

  • git status - эта команда покажет вам, какие файлы не были добавлены в список для следующей фиксации. В большинстве терминальных приложений добавленные / добавленные файлы будут иметь красный / зеленый цвет соответственно.
  • git add. - добавив. в конце команды вы говорите git включить все в каталог. Если вы хотите добавить один файл, просто используйте его имя файла. Например, functions.php .
  • git status - в зависимости от того, использовали ли вы. или имя файла, все, что вы добавили, теперь должно быть зеленым.
  • git commit -m «добавить три пустых файла» - когда вы фиксируете эти файлы, вы также должны оставить быстрое сообщение, чтобы ваши товарищи по команде (или вы в будущем) точно знали, что было в этом коммите. Стандартные соглашения git гласят, что вы должны быть как можно более краткими и конкретными и начинать сообщение, используя настоящее время глагола.

Теперь в вашем терминале будет много текста, и он должен выглядеть так. Но теперь вы знаете, что все это значит!

Отправка в удаленный репозиторий Git, например Github

Начать репо еще проще.

  • git status - вы всегда должны проверять, как все выглядит, и убедиться, что вы находитесь в правильной ветке.
  • git push
  • Введите свое имя пользователя и пароль для Github. Имейте в виду, что поле пароля останется пустым даже при вводе. Все нормально. Просто введите его и нажмите Enter. Если вы использовали SSH, вы пропустите этот шаг.

Вы можете зайти в свою учетную запись Github и проверить репо, и там будут ваши файлы, сообщения фиксации и все такое!

Ветвление и слияние

Последние две команды, с которыми вам нужно будет ознакомиться, относятся к ветвлению и слиянию. Как я уже сказал выше, работа над веткой обеспечивает безопасность основной базы кода, и как только вы внесете все необходимые изменения, вы можете снова объединить их вместе.

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

  • git checkout -b «branch1» - эта команда создаст новую ветку, которую вы назначаете, и переключит вас на нее как на вашу рабочую ветку. Он объединяет команды git checkout и git branch в одну удобную строку кода.
  • touch awesome.html - это просто команда-заполнитель для создания нового html-файла, который я снова объединю с мастером.
  • Как и раньше, вы будете использовать git status, git add awesome.html, git commit -m «create awesome.html».
  • git status снова позволит вам увидеть, что все в порядке.

Если вы попытаетесь нажать его перед слиянием, вы получите сообщение о том, что вам нужно установить источник репо. Origin - это странное соглашение об именах того, что ваш компьютер считает удаленным репозиторием. По сути, вы просто говорите ему, что да, можно отправить эту ветку в Github, как это сделал мастер. Вот хорошая ветка о git origin из Stack Overflow.

После этого он скажет вам, что он перешел в branch1 -> branch1.

Вы можете вернуться к основной ветке с помощью git checkout master (на этот раз нет checkout -b, потому что вы используете это только при создании новой ветки, а не при замене местами. На скриншоте ниже мои команды перепутались, и я попробовал git branch master Не получилось, потому что хозяин уже существовал.

  • git status - как всегда.
  • git merge branch1 - Поскольку все в этой ветке в порядке, мы можем продолжить и выполнить слияние.
  • Если мы снова git status , мы увидим, что опережаем origin / master на 1 коммит. Это означает, что мы не внесли все изменения, которые мы внесли в Github.
  • git push для синхронизации!

Проверьте свою учетную запись Github - вы увидите, что все, что вы сделали, отражено там. Вы можете увидеть различные сообщения коммитов, количество ветвей и коммитов, которые мы сделали, а также всех участников репо и то, что они сделали.

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

О, еще одна вещь!

Репозиторий Github, myfirstrepo , который я использовал для этой статьи, все еще работает. Не стесняйтесь проверить это, поиграть с ним, разветвить, клонировать или что-то еще, что, по вашему мнению, поможет вам привыкнуть к использованию git. Повеселись! (И спасибо за терпение и все мои мерзкие каламбуры.)

Миниатюра статьи MchlSkhrv / shutterstock.com