Centralized Workflow

Использование схемы работы с центральным репозиторием требует наличия отдельного места в сети. Задача настолько распространённая, что появилось множество сервисов, ориентированных на хостинг git-репозиториев. Одним из первых был GitHub.

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

GitHub

И если изначально GitHub делался для кода, то сейчас его используют для всего, что может быть представлено текстом. Например, пишут или переводят книги.

Test Assignments

У GitHub прекрасная документация, которая описывает то, как с ним можно работать:

Github Guides

Чтобы начать работу с GitHub вам необходимо выполнить следующие действия:

  • Зарегистрироваться на сайте
  • Создать репозиторий по инструкции. После создания появится страница, на которой подробно описано, как действовать дальше.
  • Клонировать репозиторий по инструкции. Не забудьте перейти в директорию с репозиторием.
  • Выполните изменения в склонированном на ваш компьютер репозитории, а затем отправьте (git push) их обратно на GitHub.

Github

Ниже приведён пример работы с репозиторием на GitHub.

# Пример клонирования репозитория https://github.com/Hexlet/ru-test-assignments в директорию /tmp

# Клонирование
tmp$ git clone https://github.com/Hexlet/ru-test-assignments.git
Cloning into 'ru-test-assignments'...
remote: Counting objects: 127, done.
remote: Compressing objects: 100% (9/9), done.
remote: Total 127 (delta 4), reused 4 (delta 1), pack-reused 112
Receiving objects: 100% (127/127), 22.84 KiB | 135.00 KiB/s, done.
Resolving deltas: 100% (34/34), done.

# Переход в папку с проектом
tmp$ cd ru-test-assignments
ru-test-assignments$ ls
README.md

# Здесь какие-то изменения README.md

# Проверка состояния
ru-test-assignments$ git status
On branch master
Your branch is up to date with 'origin/master'.

Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git checkout -- <file>..." to discard changes in working directory)

    modified:   README.md

no changes added to commit (use "git add" and/or "git commit -a")

# Добавление изменения в индекс
ru-test-assignments$ git add README.md

# Коммит
ru-test-assignments$ git commit -m 'update readme'
[master dbd23b9] update readme
 1 file changed, 16 insertions(+), 16 deletions(-)

# Отправка изменений на GitHub
ru-test-assignments$ git push
Counting objects: 3, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 346 bytes | 346.00 KiB/s, done.
Total 3 (delta 1), reused 0 (delta 0)
remote: Resolving deltas: 100% (1/1), completed with 1 local object.
To github.com:Hexlet/ru-test-assignments.git
   80d23b1..dbd23b9  master -> master

Тестовые задания

В одном из публичных репозиториев Хекслета мы собираем тестовые задания разных компаний. Выполнение этих заданий – прекрасная возможность потренировать работу с Git.

Самостоятельная работа

  • Создайте аккаунт на GitHub
  • Создайте репозиторий hexlet-basics
  • Склонируйте этот репозиторий локально, добавьте в него README.md и отправьте код на Github. Убедитесь, что на сайте отобразились изменения.
Мы учим программированию с нуля до стажировки и работы. Попробуйте наш бесплатный курс «Введение в программирование» или полные программы обучения по Node, PHP, Python и Java.

Хекслет

Подробнее о том, почему наше обучение работает →