Introduction in Git

by Yana Kriklivaya

Введение в GIT

Яна Крикливая

Что такое система контроля версий?

СКВ — ПО для облегчения работы с изменяющейся информацией. СКВ позволяет хранить несколько версий одного и того же документа, при необходимости возвращаться к более ранним версиям, определять, кто и когда сделал то или иное изменение, и многое другое.

Что такое Git?

Git — распределённая система контроля версий (СКВ). Проект был создан Линусом Торвальдсом для управления разработкой ядра Linux, первая версия выпущена 7 апреля 2005 года. На сегодняшний день его поддерживает Джунио Хамано.

Особенности Git

«It is easy to shoot your foot off with git, but also easy to revert to a previous foot and merge it with your current leg.»

Стандартный рабочий процесс

  1. Изменение файлов в рабочем каталоге (working directory)
Git-workflow

Что нужно для работы:

  1. Git на локальной машине

Основные команды

Git init

git init — версионный контроль в существующей директории

git init <dir> — создает новую директорию

git init --bare <dir> — создает репозиторий без рабочей директории

Git clone

git clone <repo> — копирует git-репозиторий

git clone <repo dir> — копирует в директорию


пример:

git clone https://github.com/MammaSonnim/git-show.git gitshow

Git config

--system / --global / без ключа

git config --list — все настройки файлов конфигурации


git config --global user.name <name>

git config --global user.email <email>

git config --system core.editor <editor>

Запись изменений

git add <file>/<dir> — добавление файлов в индекс

git commit — фиксация изменений


пример SHA-1 хеша: 24b9da6552252987aa493b52f8696cd6d3b00373

git commit -m 'commit-descr' — коммит с описанием сразу

git commit -am 'commit-descr' — git add + git commit -m

Просмотр изменений

git status — определение состояния файлов

git diff / + --staged — просмотр изменений до индекса / коммита

git log — просмотр истории по коммитам

Основы ветвления

Ветвление — отклонение от основной линии разработки

Ветка — ссылка на определенный коммит

HEAD — указатель на текущую ветку

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

git branch <name> — создать новую ветку

git checkout <name> — переключиться на ветку

git merge <name-2> — слияние: слить в текущую ветку ветку-2

git branch -d <name> — удалить ветку

Создание новой ветки

git branch testing
— создать ветку под именем testing

Переключение на ветку

git checkout testing
— переключиться на ветку testing

Разработка в новой ветке

git commit -am 'start test'
— коммит 87ab2 (сокращенный SHA-1)

Слияние-перемотка (fast-forward)

Коммит-слияние

Конфликты

Работа с удаленными репозиториями

git remote add <name> <url> — добавление удалённого репозитория под именем-сокращением

git fetch — забрать данные с удалённого репозитория

git pull — fetch + merge

git push <remote_server> <branch> — отправление наработок на удалённый сервер

Github и gh-pages

Полезные ссылки (рус.)

Полезные ссылки (англ.)

Fork me on GitHub