Skip to content

Latest commit

 

History

History
261 lines (180 loc) · 21.3 KB

git_markdown.md

File metadata and controls

261 lines (180 loc) · 21.3 KB

Основы работы с системами контроля версий и GitHub

Что такое Git?

Git -- система управления версиями (version control system, VCS), созданная программистом Линусом Торвальдсом для управления разработкой ядра Linux в 2005 году. Хорошо, а что это всё-таки значит?

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

  • ваша папка на компьютере - это не просто папка, а локальный репозиторий
  • она является копией удаленного репозитория, который лежит на веб-хостинге (например, GitHub или BitBucket)
  • если вы работаете над проектом с коллегами, то своя локальная копия есть у каждого
  • когда вы внесли некоторое количество изменений, вы можете их сохранить, и это дествие запишется в журнал; это называется commit
  • после этого можно отправить изменения в удаленный репозиторий; это называется push
  • актуальная версия проекта, учитывающая последние изменения всех участников, будет храниться в удаленном репозитории
  • если вы увидели, что ваши коллеги запушили в удаленный репозиторий что-то новенькое, то можно (и нужно!) скопировать это себе на компьютер; это называется pull

NB! Вот тут шпаргалка по командной строке (для работы с git не только).

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

Понятно, что для совместной работы над текстом научной статьи вполне хватит и GoogleDocs, но вот если, например, вы хотите опубликовать результаты исследования в интернете и сделать для этого собственный сайт, то без VCS обойтись сложно. И ещё раз, системы контроля версий хороши тем, что

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

Установка и настройка Git

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

Windows

Надо нажать на Windows прямо под большой надписью Downloads (тут же можно выбрать MacOs X и Linux, если это понадобилось, а способ ниже не помог). После запуска приложения нажать на странице лицензии "Next", в окошке с галочками, чтобы вы ни выбрали, это не повлияет на изучение нашего курса -- посмотрите, что вам удобнее. Еесли любите называть/писать на русском языке, то поставьте галочку возле TrueType fonts (это внизу списка).

Далее будет окно выбора текстового редактора:

  • Notepad++ -- возможно, придется установить самостоятельно, но он простой и удобный;
  • Nano - консольный текстовый редактор, проще vim, там подписаны действия (^? - это одновременное нажатие клавиш Сtrl и ?);
  • Vim – сложный, но предалагается по умолчанию (а на mac os x и linux выбрать иное не дают), да и на компьютерах на Старой Басманной он используется.

В следующем окне выбирайте "Use Git from Windows Command Prompt", а затем в окне далее "Use OpenSSH", потом "Use the OpenSSL library", затем "Checkout as-is, commit Unix-style line endings", после "Use Windows' default console window". В онке с тремя квадратиками лучше на всякий случай выбрать все, а далее "Install".

После установки git необходимо его настроить, это делается с помощью двух команд:

git config --global user.name "ваш логин на github"

git config --global user.email "почту, которую указали при регистрации на GitHub.com"

MacOs X и Linux

  • Если у вас MacOs, то напишите в терминал команду git, и система начнет сама ее устанавливать.
  • Если y вас Linux и git не был установлен с системой, то можно его установить с помощью пакетного менеджера: sudo apt-get install git (для Ubuntu и Debian)

GUI

Но это еще не всё. Нам нужно как-то отдавать гиту команды, и делать это можно двумя способами: с помощью командной строки и через графический интерфейс (graphical user interface, GUI). Графический интерфейс программы - это все те окошки с кнопочками, которые мы привыкли видеть. Существует много графических интерфейсов для гита, например:

GitHub

Каждому понадобится аккаунт на этом веб-хостинге для сдачи домашних заданий. Чтобы зарегистрироваться, идём сюда, выбираем любое имя пользователя и пароль, и готово! Почту при регистрации можно указывать любую. Теперь у вас есть собственная страничка: https://github.com/username

После регистрации вы попадете на приветственную страницу, где сначала нужно, ничего не меняя, нажать зеленую кнопку Continue, а потом -- Skip this step (но если не лень, можно заполнить опросник и нажать Submit).

Когда вы подтвердите свой e-mail, появится вот такая страничка -- это значит, можно начинать работу. :)

Создаем репозиторий

Чтобы создать репозиторий, нажимаем кнопку Start a project и выбираем название. Оно может быть любым, но должно отражать суть того, что лежит внутри, например, "homeworks". Впрочем, гитхаб предлагает более креативные варианты. :) Также в специальном поле можно добавить описание.

Наш репозиторий должен быть публичным; также важно поставить галочку рядом с Initialize this repository with a README -- за этой фразой скрывается команда init, которая превращает пустую папку в git-проект. После этого можно смело жать кнопку Create repository. Вы увидите список файлов в своем репозитории (пока это только автоматически сгенерированный файл README с описанием проекта) и содержание README, если он есть. Ссылка на репозиторий будет выглядеть так: https://github.com/username/your_repo_name.git

Порядок работы с GitHub

  1. Создаем репозиторий на GitHub, как описано выше
  2. На своем компьютере открываем терминал (cmd на Windows, terminal на OS X, можно найти через поиск) и переходим в ту папку, в которую хотим склонировать репозиторий. Переход выполняется с помощью команды cd path, где path -- путь к папке, куда будем клонировать репозиторий
  3. Затем набираем в терминале git clone link.git, где link.git -- это ссылка на ваш репозиторий. Можно скопировать ее на главной странице репозитория (зеленая кнопка "Clone or download")
  4. Теперь можно проверить, что в папке, в которую переходили в п.2, появилась новая папка, которая назвается так же, как и репозиторий на гитхабе. Это локальный репозиторий.
  5. После того, как вы сделали в локальном репозитории какие-то изменения, их нужно отправить на GitHub. Сначала переходим в терминале в репозиторий с помощью команды cd
  6. Дальше добавляем изменения: git add filename, где filename -- это имя файла, который нужно добавить, или git add *, если нужно добавить все изменения. Изменения -- это не только создание нового файла, но и редактирование уже имеющихся, а также удаление и переименование.
  7. Теперь записываем изменения в журнал: git commit -m "Commit message". Сообщение должно коротко и понятно описывать изменения, которые вы вносите -- это поможет вам и вашим коллегам разобраться, что и на каком этапе произошло с проектом. Поверьте, адекватные описания коммитов -- это очень важно!


    Сообщение писать обязательно! Если вдруг забудете, то попадете в страшное место Vim, из которого очень сложно выбраться! Если вдруг попали -- процедура спасения описана в файле cmd_cheatsheet :)
  8. И, наконец, отправляем это все в удаленный репозиторий, то есть на GitHub: git push. После этого нужно будет ввести имя пользователя и пароль от гитхаба. Когда вы вводите пароль, он не отображается -- так и должно быть!
  9. Важно: перед тем, как пушить какие-то изменения в удаленный репозиторий, нужно сначала проверить, не появилось ли там чего-то новенького, что вы еще не успели скопировать себе на компьютер (соавторы проекта внесли изменения, вы сами что-то сделали на сайте и т.д.), иначе возникнет конфликт версий -- это не то чтобы сложно исправить, но пока вам лишних проблем не нужно. Изменения из удаленного репозитория в локальный переносятся командой git pull.
  10. После того, как сделали git pull, можно спокойно выполнять пункты 6-8.

Markdown

Markdown -- это упрощенный язык разметки, который преобразует (почти) обычный текст в html-страницу. Создан в 2004 году Джоном Грубером и Аароном Шварцем, затем был дополнен и адаптирован для различных приложений.

Markdown-файлы имеют расширение .md или .markdown

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

1. Форматирование в Markdown

Заголовки в Markdown выделяются решетками #:

# заголовок 1 уровня
## заголовок 2 уровня
...
###### заголовок 6 уровня

Чтобы выделить текст курсивом, нужно поставить в начале и в конце фрагмента текста * или _ (не отделяя пробелом):

*звезды* или _нижние подчеркивания_

звезды или нижние подчеркивания

Чтобы сделать текст жирным, нужно поставить в начале и в конце фрагмента текста ** или __ (не отделяя пробелом):

**две звезды** или __два нижних подчеркивания__

две звезды или два нижних подчеркивания

Чтобы перечеркнуть текст, используйте ~~ в начале и в конце (не отделяя пробелом):

~~две тильды~~

две тильды

Списки

Нумерованные списки задаются так (уровни можно задать отступами):

1. первый элемент
2. второй элемент
3. третий элемент
4. четвертый элемент
1. пятый элемент
  1. первый элемент
  2. второй элемент
  3. третий элемент
  4. четвертый элемент
  5. пятый элемент

Маркированные списки задаются с помощью дефисов, астерисков или плюсов (уровни можно задать отступами):

+ первый элемент
- второй элемент
+ третий элемент
  - четвертый элемент
  * пятый элемент
  • первый элемент
  • второй элемент
  • третий элемент
    • четвертый элемент
    • пятый элемент

2. Объекты

Ссылки

Ссылки и адреса электронной почты можно вставить без всего или в угловых скобках:

<https://www.markdownguide.org>  
https://www.markdownguide.org  

<eee@mail.ru>  
eee@mail.ru

https://www.markdownguide.org
https://www.markdownguide.org

eee@mail.ru
eee@mail.ru

Если нужно сделать гиперссылку, то она оформляется так:

[текст](https://www.markdownguide.org)

текст

Можно добавить всплывающий при наведении комментарий:

[текст](https://www.markdownguide.org "это поможет")

текст

Картинки

Чтобы вставить картинку, нужно написать следующую строку (без пробелов):

![](ссылка на картинку)

Например:

![](http://3.bp.blogspot.com/-_DLc3qDxsNA/VenIznBsK7I/AAAAAAAAB0A/GHjI_97B364/s1600/TheFunk.jpg)

Таблицы

Строки в таблице разделяются переходом на новую строку, столбцы вертикальной чертой (|)
Между заголовком и телом таблицы вставляется строка с --- в каждой ячейке. Выравнивание задается положением двоеточия:

1|2|3
---|:---:|---:
да|нет|не знаю
не знаю|нет|да
нет|не знаю|да
нет|да|не знаю
да|не знаю|нет
не знаю|да|нет
1 2 3
да нет не знаю
не знаю нет да
нет не знаю да
нет да не знаю
да не знаю нет
не знаю да нет

3. Где можно использовать Markdown?

  • GitHub
  • Telegram
  • Tumblr
  • R, Python ...

4. Полезные (и не очень) ссылки

Наиболее полное руководство
Cheatsheet (сжатый конспект)
Help от гитхаба
Фичи для продвинутых от гитхаба
Вдохновляющий набор расширений и приложений, где используется Markdown (там есть, в том числе, про то, как делать презентации и документы, а также писать красивые письма)
Курс на codeacademy