Original article: https://thenewstack.io/tutorial-git-for-absolutely-everyone/
Существует довольно универсальный стереотип о программистах, как о затворниках интровертах, которые хотят взаимодействовать исключительно с монитором и желательно в темной комнате). Они покидают свои рабочую станцию/ крепость одиночества / code dojo только по биологическим потребностям, никогда не разговаривают с другими людьми, если нет острой нужды. Как во всех стереотипах, здесь есть доля правды.
Однако, жизнь разработчика намного более социальная, чем может показаться на первый взгляд. К счастью есть git: система контроля версий, обеспечивающая взаимодействие между участниками команд разработки.
Git это система контроля версий для совместной работы над проектами. И под работой подразумевается не просто распределение ролей, а полноценный механизм обмена данными.
Прямо как Google Drive сделали возможным совместную работу над файлами, git это компьютерная программа, позволяющая работать над проектом нескольким программистам, менеджерам, тестерам и т.д.
Git может показаться пугающим, если вы не имели опыт в программировании, но не расстраивайтесь и думайте об этом также, как о Google Docs и вы преуспеете! Забавный факт: git был изобретен Линусом Торвальдсом - это тот самый, кто создал Linux.
Представьте, что у вас есть новый проект. Вы планируете хранить все файлы в одной папке. В ходе разработки эти файлы будут меняться. Постепенно ваш проект станет неорганизованным или даже беспорядочным. И в этот момент вы захотите вернутся назад во времени к моменту, когда проект не был таким беспорядочным. Если только это возможно!
Да, возможно, благодаря git! Система контроля версий нужна для хранения всех изменений к любому файлу в проекте. После того, как вы сделаете изменения, git сделает "снимок" текущей версии проекта. Теперь вы можете использовать git, чтобы вернутся назад, при необходимости.
Теперь, когда вы напортачите, git будет вашей волшебной палочкой, чтобы вернулся назад во времени и все исправить. Git не единственная система контроля версий, но самая популярная. Также необходимо знать про GitHub, самый популярный сайт и платформа для хостинга и обмена проектами. Это не одно и тоже, что git - это хранилище для проектов, что используют git.
Достаточно легко понять, как один человек работает над одним проектом. Сложнее представить работу команды, где всем нужно работать над одним проектом. Параллельно несколько человек могут работать над проектом локально. Как же делиться изменениями, и также получать изменения? Как быть уверенным, что одни изменения не конфликтуют с другими? Git это распределенная система контроля версий. Что означает, что Git имеет специальные команды, позволяющие делиться изменениями и также получать их.
Выберите операционную систему:
Если этот шаг застал вас врасплох, то рекомендую ознакомится с кратким курсом по командной строке.
Настало время настроить git. Введите команды ниже. Не забудьте проставить значения.
git config --global user.name 'My_Name'
git config --global user.email '[email protected]'
git config --global color.ui 'auto'
Последняя строка не обязательна. Это скажет git автоматически подбирать цвета для более приятного вывода. Флаг "--global" служит для того, чтобы сделать эти настройки постоянными для текущего пользователя.
Настало время сделать простой проект. Создайте пустую папку и перейдите в нее.
mkdir ...
"git init" создаст новый git репозиторий в текущей папке.
Вы уже создали репозиторий на вашем компьютере. Также в папке появились дополнительные служебные файлы git. Главная область, с которой вы работаете это "Working Directory", которая содержит ваш текущий проект. Также есть "Index" - временное хранилище для новых изменений. И, так называемый, "Head", что есть последний коммит (последняя сохраненная версия проекта).
Это хорошая практика начинать проект с создания файла "README", чтобы дать краткое описание вашего проекта.
touch README.md
В этом шаге мы создадим рабочую копию локального репозитория. Критически важно работать с копиями проекта, особенно в команде. Если работа сделана хорошо, то ее можно будет добавить в оригинальный репозиторий. Другие участники команды будут делать тоже самое.
git clone ...
За кадром в проект был добавлен файл "my_file.md". Теперь есть несколько файлов в нашем репозитории.
git status
"Git status" сообщает, что в присутствуют 2 файла, которые не были официально добавлены в "отслеживаемые". Что сделать это существует команда:
git add (name of file)
После этой команды файлы будут добавлены в "stage".
Коммит - это "отпечаток" состояния проекта в определенный момент времени. Для идентификации коммитов существует "сообщение коммита". Это краткое описание того, что происходит в этом коммите по сравнению с предыдущими.
git commit -m "my commit message"
Git помечает каждый коммит длинным десятичным числом. В данном случае “a4105ea” - первый коммит. Это дает возможность возвращаться к конкретному коммиту.
На изображении сверху, следом за "git commit ..." идет "git status". Git возвращает сообщение “Nothing to commit, working tree clean”. Это означает все в текущем проекте нет несохраненных изменений.