Git и Github для начинающих специалистов по данным

Как использовать самое известное программное обеспечение для контроля версий

Если вы еще никогда не использовали Git, самое время начать. Но что такое Git и для чего он используется?

Практический пример

Представьте, что вы старшеклассник, которому нужно написать статью об изменении климата. Вы начинаете писать на своем ноутбуке, сохраняете файл и называете его essay.txt
После разговора с друзьями вы видите, что ваше эссе слишком короткое, поэтому вы снова ставите ноутбук перед вы делаете копию своего файла, так что вы уверены, что в худшем случае вы не измените важные вещи из своего эссе, и вы добавляете содержание и создаете второе новое эссе, которое вы называете essay2.txt
На следующий день мама дает вам еще несколько советов, и вы редактируете свое эссе и создаете файл final_essay.txt.

Продолжая в том же духе несколько дней, вы увидите, что ваш рабочий стол будет в ужасном состоянии!

Я уверен, что если вы начинающий Data Scientist (или даже продвинутый), вы сталкивались с тем же самым, используя Colab или Jupyter, но вместо эссе у вас были такие вещи, как untitled.ipynb , final_project2.ipynb, super_final.ipynbи т. д.

Как Git может помочь?

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

Вам звонит друг, который говорит, что хочет помочь вам написать эссе, особенно он очень хорошо пишет введение. Затем он также хочет получить в свои руки файл для редактирования первой части, пока вы продолжаете улучшать эссе, и в конечном итоге вам придется объединить написанные вами тесты. Git позволяет вам сделать это с помощью ветви git и git merge.
Таким образом, разные версии теперь не будут следовать друг за другом по прямой линии, а будет 2 линии одна для вас и одна для вашего друга (именно ветвь), которые сойдутся вместе, когда вы пойдете, чтобы в конечном итоге сложить свои усилия (слить).

Почему Гитхаб?

Короче говоря, на Github размещаются проекты, которые у вас есть, и, кроме того, будучи онлайн-проектом, другие пользователи могут изменять его, чтобы вы могли сотрудничать с другими программистами. Основные способы взаимодействия с Github — через графический интерфейс или из командной строки с помощью Git.

Настройте репозиторий Github

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

Подключить Git к GitHub

Используя протокол SSH, вы можете подключаться и аутентифицироваться на удаленных серверах и службах. С ключами SSH вы можете подключаться к GitHub, не указывая свое имя пользователя и личный токен доступа при каждом посещении.

Давайте начнем с создания ключей SSH с помощью следующей команды на вашем терминале.

ssh-keygen -t ed25519 -C "[email protected]"

Нажимайте Enter, пока программы не сгенерируют ключи SSH.

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

eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_ed25519

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

Добавьте свой SSH-ключ на Github

Теперь, если вы хотите редактировать свой репозиторий Github удаленно с помощью Git, вам нужно сообщить Github, какие ключи SSH имеют разрешение на редактирование репозитория. Поэтому добавьте копию ключа SSH, используя следующую команду (вы не можете использовать ctrl+c в терминале)

clip < ~/.ssh/id_ed25519.pub

Теперь вставьте ключ в следующее поле

Теперь используйте эту команду, чтобы проверить, нормально ли работает соединение.

ssh -T [email protected]

Если это не работает для вас, возможно, это исправит это для вас.



Отлично, теперь вы можете начать редактировать свой репозиторий!

Клонировать репозиторий

Давайте клонируем репозиторий (загрузите репозиторий на свой локальный компьютер, чтобы внести некоторые изменения). Скопируйте ссылку ssh вашего репозитория и выполните следующую команду.

git clone ssh_link_of_your_repo

Теперь, когда у вас есть репозиторий на вашем локальном компьютере, вы можете вносить изменения, используя свою любимую IDE. Давайте, например, добавим файл README.md.

touch README.md
nano README.md
>>>nano Editor<<<
# My title
this is an example
>>> close nano Editor<<<

Добавить и зафиксировать

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

git add README.md

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

git add .

Теперь давайте «сохраним» этот файл в исходном удаленном репозитории, чтобы другие разработчики могли прочитать внесенные вами изменения.

Помните, что удаленный репозиторий называется origin, а основная ветвь называется master (или main).

git commit -m "describe your commit here"
git push origin master

Теперь вы можете проверить на Github, изменился ли ваш онлайн-репозиторий!

Заключительная мысль

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

Конец

Марчелло Полити

Linkedin, Twitter, CV