Введение в Git

Опубликовано: 2022-06-30

Когда я начал создавать веб-сайты, я «кодировал ковбой», что означает, что я часто редактировал файлы прямо на сервере. Мне потребовалось всего несколько сломанных сайтов, чтобы понять, что это была ужасная идея. Затем я начал создавать сайты локально на своем компьютере. Не раз я редактировал локальный файл только для того, чтобы перенести файл в неправильное место в моем FTP-клиенте. Иногда это означало, что я перезаписывал файл, который не мог исправить, не копаясь в поисках какой-нибудь резервной копии, которую я, надеюсь, сохранил.

Если вы все еще имеете дело с FTP и не можете откатить свои файлы, пришло время узнать об использовании Git для контроля версий.

Что такое контроль версий?

Система контроля версий (VCS) — это тип программного обеспечения, которое помогает разработчикам программного обеспечения управлять изменениями своего кода с течением времени. Хорошая система контроля версий будет отслеживать каждое изменение в коде. Это означает, что если вы что-то сломаете, вы можете вернуться к предыдущей версии кода, которая работала, не пытаясь нажать «Отменить», пока все не заработает.

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

Одна из вещей, которые я делаю в Git, — это создание новой ветки для каждой функции, которую я создаю. Это означает, что я могу отслеживать изменения, которые я делаю в ветке, но при этом возвращаться к текущему состоянию сайта, возвращаясь к основной ветке. Мы поговорим об этом рабочем процессе позже.

Что такое Гит?

Git — это система контроля версий, но не единственная. Основной репозиторий WordPress запускается через SVN, хотя вы также можете найти копию Git. Также есть Mercurial, Visual Source Safe, VESTA и многие другие варианты.

Несмотря на все эти опции, Git — это то, что используют почти все, поэтому сегодня мы узнаем о системе управления версиями.

Основные термины и команды Git

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

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

Добавить : когда вы внесли изменения в свой код, вы будете использовать команду git add, чтобы добавить изменения, чтобы их можно было зафиксировать.

Ветвь : ветка — это версия вашего репозитория, которая отличается от основного рабочего проекта. Все репозитории поставляются с основной или, что чаще встречается в старых проектах, с основной веткой. Недавно Git и Github начали менять имя ветки по умолчанию с master на main из-за исторических проблем со словом master. Git 2.28 также позволяет вам установить имя ветки по умолчанию для любого нового проекта.

Checkout : вы используете команду git checkout для переключения между разными ветвями в репозитории. Когда вы используете эту команду, Git изменяет содержимое файлов или добавляет и удаляет файлы, которые различаются между ветвями.

Clone : ​​команда git clone используется для создания копии репозитория из исходного репозитория. Вы использовали бы эту команду, чтобы получить локальную копию удаленного репозитория, чтобы вы могли работать с кодом.

Commit : после того, как вы использовали git add , вам нужно использовать git commit , чтобы иметь возможность сохранять состояние ваших файлов в git.

init : git init создает для вас пустой репозиторий со всеми основными файлами, которые необходимы Git для работы.

Слияние : после того, как вы внесли изменения в одну ветку, добавили и зафиксировали их, вы используете команду git merge для переноса этих изменений в другие ветки.

Происхождение : это имя по умолчанию для основной версии репозитория. Я обычно меняю свой, чтобы он был более описательным, чем происхождение. Если я работаю с Github, я меняю настройки в Git, чтобы источник стал github. Это помогает мне сохранять ясность в голове.

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

Репозиторий : его также можно назвать «репозиторием», и он представляет собой каталог всех файлов и историю изменений этих файлов Git.

Статус : git status показывает текущий статус вашего рабочего репозитория.

.gitignore : это скрытый файл, содержащий шаблоны файлов, которые Git не будет отслеживать. Если у вас есть .DS_Store в ваших файлах .gitignore , он будет игнорировать все надоедливые файлы, которые macOS часто помещает в папки.

Хостинг репозиториев Git

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

Github и Bitbucket — два самых популярных места для размещения ваших репозиториев Git, потому что они в основном бесплатны, и вы можете иметь частные репозитории. Это означает, что ваш код находится на чужом сервере, поэтому, если вам не нравится эта идея, вы можете использовать Gitlab на своем сервере для размещения репозиториев.

Установка Git

В macOS самый простой способ установить git — открыть Терминал и ввести git, после чего вам будет предложено загрузить инструменты командной строки Xcode для установки git. После этого вы можете запустить git –version, чтобы узнать, какая у вас версия git. Если это не работает, есть несколько других способов установить git на macOS.

Для пользователей Windows вы можете установить Git с помощью официального установщика Git. Git также поставляется в комплекте с приложением Github Desktop, о котором мы поговорим позже.

Если вы работаете в Linux, git должен быть связан с вашим менеджером пакетов, или вы можете посмотреть эти способы установки git в Linux.

Настройка Git по умолчанию

После того, как вы установили Git, вам нужно настроить его так, чтобы каждый коммит использовал ваше имя и адрес электронной почты, а также сообщения коммита, чтобы использовать ваш предпочтительный редактор для ввода любых комментариев, которые сопровождают коммит. Мы рассмотрим способ их установки в macOS через приложение «Терминал».

git config --global user.name "Your Name" установит имя, которое будет сопровождать каждую фиксацию, сделанную на вашем компьютере.

git config --global user.email "[email protected]" установит адрес электронной почты, связанный с каждым вашим коммитом.

git config --global core.editor vim сделает редактор по умолчанию для Git vim. Хотя я люблю vim, это не тот редактор, который нравится всем. Если вы используете Atom, вы должны использовать git config –global core.editor «atom –wait» или git config –global core.editor «subl -n -w» для Sublime Text.

Если вы используете IDE, то Visual Studio Code также позволяет вам работать с Git непосредственно из приложения, если вы хотите, как это делает PHPStorm .

Создание репозитория

Теперь, когда мы установили и настроили git, давайте запустим базовый репозиторий. Откройте терминал и создайте папку с именем test-repository, набрав mkdir test-repository . Затем введите cd test-repository , чтобы перейти в каталог test-repository, и введите git init .

На этом этапе у вас будет один скрытый каталог в вашей папке с именем .git . Поскольку это скрытый файл, вам нужно ввести ls -a в терминале, чтобы просмотреть список скрытых файлов.

Использование git добавить

Теперь давайте создадим файл, набрав touch test.txt в Терминале. Затем введите git status , чтобы увидеть только что добавленный файл.

Как видите, созданный нами новый файл отображается красным цветом и сообщает нам, что его статус не отслеживается. Это означает, что Git видит файл, но не имеет о нем никаких записей.

Введите git add test.txt , чтобы сообщить Git о подготовке этого файла, затем снова введите git status , и Git должен сообщить вам, что он знает об измененном файле.

Отправка файлов в Git

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

git commit -m 'adding our first file'

Флаг -m сообщает git, что слова в одинарных кавычках являются комментарием к команде.

Теперь в нашем репозитории есть один файл с сохраненным статусом.

Создать ветку

Настоящая сила Git проявляется, когда вы начинаете заниматься ветвлением. Допустим, вы хотите написать что-то в своем файле test.txt, но не уверены, сохраните ли вы его, и хотите убедиться, что сможете вернуться к текущему пустому файлу. Мы можем сделать это с помощью ветки.

Чтобы создать ветку, мы можем ввести git checkout -b new-branch . Это ярлык для создания ветки одновременно с получением ветки, и это то, что я использую каждый раз, когда мне нужно создать ветку.

Теперь откройте наш файл test.txt , добавьте в него текст и сохраните его. Затем используйте git add и git commit , как указано выше, чтобы сохранить состояние файла.

Затем введите git checkout master , чтобы вернуться к основной ветке по умолчанию, а затем снова просмотрите содержимое вашего файла test.txt . Вы заметите, что весь введенный вами текст был удален. Git даже удалит новый файл, который был только в одной ветке, хотя он сохраняет запись о нем, поэтому он не исчез.

Объединить ветку

Теперь нам нравится то, что мы написали в нашем файле, поэтому давайте интегрируем его с нашей основной веткой. Убедитесь, что вы находитесь в основной ветке, и введите git merge new-branch , чтобы интегрировать ваши изменения.

Если вы сейчас посмотрите на содержимое test.txt , вы обнаружите свои изменения в основной ветке в том виде, в каком вы их оставили.

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

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

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

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

Если я обрабатываю весь рабочий процесс развертывания, я делаю корневую папку WordPress основным местом для моего репозитория Git. Затем я обязательно добавляю wp-content/uploads и wp-config.php в свой файл .gitignore . wp-config.php специфичен для каждой установки WordPress, поэтому я не хочу, чтобы он развертывался поверх любой другой версии файла, что могло бы привести к остановке работы сайта.

Вы можете увидеть копию файла .gitignore , который я использую в качестве отправной точки для каждого проекта. Предполагается, что вы используете wp-content в качестве корня своего репозитория Git, поэтому я изменяю некоторые шаблоны игнорирования, если я нахожусь в корне WordPress.

Git-приложения с графическим интерфейсом

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

К счастью, есть несколько отличных клиентов с графическим интерфейсом для Git, которые вы можете использовать, поэтому давайте выделим некоторые из них.

Рабочий стол Github (Windows/macOS)

Отличный способ начать знакомство с клиентами Git GUI — это приложение Github Desktop.

Многие проекты с открытым исходным кодом используют Github в качестве репозитория кода для совместной работы и используют стандартный поток Github для выполнения своей работы. Клиент Github Desktop создан, чтобы помочь вам справиться с этим потоком, поэтому он упростит создание запросов на вытягивание.

Если вы не знаете, что такое запрос на вытягивание, ознакомьтесь с Документация Github по запросам на вытягивание

К сожалению для пользователей Linux, официального приложения Github Desktop не существует, но есть ответвление Github Desktop, которое можно установить в системах Linux.

Git Tower (Windows/macOS)

Я использую графический интерфейс Git — Git Tower. Git Tower доступен для macOS и Windows. Когда я только начинал работать с Git, мне было проще разрешать конфликты и видеть различия между файлами внутри этого графического интерфейса.

Рабочая копия (iOS/iPadOS)

Если вы в основном работаете с iPad, как я, то вам стоит взглянуть на Working Copy. Рабочая копия — это полнофункциональный клиент Git, который работает с iOS и iPadOS. Он даже имеет интеграцию с ярлыками, поэтому вы можете автоматизировать части своего рабочего процесса Git.

Подведение итогов

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

  • Git-документация
  • Книга про Git
  • Урок Laracasts Git
  • Собственные внешние ресурсы Git

Используя Git для управления клиентскими проектами, вы избавите себя от головной боли, поскольку сможете откатывать изменения или удалять целые ветки, если вам больше не нужна проделанная работа. Больше никаких Ctrl + Z, пока вы не решите, что откатились достаточно далеко, Git будет отслеживать все это для вас.