В прошлый раз мы подготовили нашу ОС и IDE, но для разработки приложений на питоне нам понадобится система контроля версий.
Так как мы будем активно делиться своим кодом, нужно иметь возможность его куда-то выкладывать и удобно публиковать его например на repl.it, однако если мы пишем большое приложение с множеством файлов, то будет не сильно удобно их по одному туда заливать. Еще хотелось бы иметь возможность сохранять наш прогресс, то что мы написали и загружать его как это делают в компьютерных играх. Пишем мы допустим какую то программу, решили проверить новую функцию, предварительно сохранились, теперь меняем наш код, проверяем работает ли новая функция и если нет, то мы всегда можем загрузиться в наш рабочий код.
Называется такая система контроля версий GIT, были и другие(snv, mercurial), но о них мы говорить не будем.
Система git построена на репозиториях, серверах где можно хранить ваши изменения кода и в любой нужный момент загружаться в то сохранение которое вам нужно.
Есть 3 самых популярных репозитория, это github.com, gitlab.com и bitbucket.org.
В этом посте мы будем разбирать работу только с GitHub, он самый популярный и у него есть некоторые интересные инструменты о которых я хочу рассказать.
Для начала нам понадобится консольный клиент что бы мы могли создавать на нашем компьютере снимки(сохранения) нашего кода.
Установим программу git (да она так и называется, просто git) используя наш пакетный менеджер
macOS:
brew Install git
Linux Ubuntu:
sudo apt install git
Linux Fedora:
dnf install git
Или
yum install git
Windows:
choco install git
На самом деле на всех нормальных ОС (Windows к ним не относится), git уже предустановлен и его не требуется дополнительно устанавливать.
Как же нам с ним работать?
Для начала давайте создадим папку например где нибудь на рабочем столе и откроем нашу консоль, нам нужно попасть в наш созданный каталог, сделать это можно командой (change dir) пишется как cd
cd /Users/_имя_пользователя/Desktop/gitDemo
Следующим шагом нам нужно инициировать наш локальный репозиторий, поесть указать, что в этой папке мы будем отслеживать изменения в наших файлах.
Выполните команду:
git init
Я надеюсь вы поставили Powerline и настроили zsh, если да, то теперь вы начнете понимать зачем он нам был нужен.
Пройдемся по тому что мы сейчас видим.
Первое, это сам путь до папки, а далее в зеленной части мы видим
значок репозитория,
значок ветки за которым идет имя ветки.
Теперь нам надо создать какой-нибудь файл и первое что мы сделаем, это создадим файл с описанием, небольшую документацию к нашему приложению.
Создадим файл README.md используя команду touch
touch README.md
Или же давайте сразу запустим наш редактор и создадим файл через него.
Находясь в папке которую мы только что создали и инициировали в ней репозиторий, выполните команду
charm .
Именно так как я написал charm пробел и точка.
Точка указывает на то что в качестве проекта будет использоваться наш текущий каталог из которого мы вызываем программу.
Совсем забыл, что мы же не настроили наш Pycharm на запуск таким образом.
Тогда для начала опишу как установить команду charm для запуска нашей ide из консоли нашей ОС.
Для этого создайте любой пустой проект, если не запустили еще pycharm то запустите и нажмите New Project
В появившимся окне нажмите Create
Далее в Global Menu (строка меню с верху) выберите
Tools и Create Command-line Launcher…
и нажмите OK
Готово!
Теперь вернемся к нашему каталогу, выполните в терминале команду charm . Или же откройте нашу папку через pycharm и меню file -> Open… и укажите наш созданный на рабочем столе каталог.
Готово! Мы открыли наш проект.
Через меню File -> New… -> File создайте новый файл и назовите его README.md
Обратите внимание в низу окна с нашим проектом есть группа кнопок, одна из них нам сейчас нужно что бы открыт окно терминала прямо в pycharm и не переключаться между окнам в OS
Теперь у нас открыто окно с нашим проектом, с лева у нас отображаются наши файлы в этом проекте, а в низу есть терминал в котором мы можем выполнять различные команды.
Как вы уже заметили, у нас изменилась строка нашего powerline с зеленого на желтый и добавилась запись +1
Это означает что у нас есть одно не зафиксированное изменение.
Посмотреть это можно так же командой git status
Давайте выполним ее и посмотрите что она выведет
❯ git status
On branch main
No commits yet
Changes to be committed:
(use "git rm --cached <file>..." to unstage)
new file: Readme.md
Так как мы создали наш файл, то в нашем локальном репозитории произошли изменения, которые нам теперь надо зафиксировать.
Выполним последовательно следующие команды
git add -A либо git add —all либо git add . (На конце точка, означает все файлы в текущем каталоге)
git commit -m ‘init’
Если вы выполнили команду git commit без параметра -m и нажали Enter, то попадете в редактор по умолчанию, vim. Я не буду рассматривать работу с этим редактором, но скажу как из него выйти :)
Для начала у вас не должно быть никаких уведомлений
вроде —INSERT— как у меня на скриншоте, если это так, нажмите клавишу esc.
Далее нажмите клавишу двоеточие :
и введите q либо !q
первая попытается выйти из редактора, но если вы успели сделать какие либо изменения, предупредит вас и не выйдет, а вторая выйдет без сохранения изменений. Если же вы хотите сохранить сделанные изменения, то надо ввести wq
Теперь мы сохранили наши изменения в нашем локальном репозитории и по команде
git status мы должны получить следующее сообщение
❯ git status
On branch main
nothing to commit, working tree clean
Давайте теперь еще сделаем некоторые настройки которые нам очень важны и скорее всего при попытке сделать git commit вы получили уведомление где было много букв :)
Сейчас мы это исправим.
Нам нужно прописать в нашем репозитории кто мы и как к нам можно обратиться в случае чего.
Делается это следующим командами:
git config —global user.name=‘Ваше Имя’ Пишите имя на Английском языке
git config —global user.email myname@mail.com Укажите ваш адрес электронной почты
Так же давайте изменим наш редактор по умолчанию с Vim на charm следующей командой
git config --global core.editor "charm --wait"
Теперь если мы еще раз забудем указать параметр -m то у нас откроется вкладка в нашем pycharm.
посмотреть сделанные настройки можно следующей командой
git config —global -e
В итоге мы должны увидеть что то вроде этого
Эти параметры можно отредактировать и в ручную, тут в редакторе.
Пока мы на этом остановимся. В следующей статье мы продолжим редактировать наш файл Readme.md и добавим к нашему репозиторию небольшой список с указанием какие файлы и папки мы не должны отслеживать.