Статья из архива (2014–2017). Версии и команды могли устареть; текст сохранён для истории.

Получение данных

Инициализация нового репозитория. При клонировании удаленного репозитория (git clone) выполнение данной команды необязательно

    git init

Клонирование удаленного репозитория на локальный компьютер

    git clone

Синтаксис команды: git clone имя_репозитория папка_куда_нужно_склонировать_репозиторий ;
При клонировании внутри папки создается папка с названием клонируемого репозитория.

Получение с сервера списка изменений

    git fetch

Получение с сервера текущей версии активной ветки

    git pull

Проверка, есть ли что-либо для коммита

    git status

Передача данных

Добавление измененного содержимого в индекс

    git add

git add . - добавление всех файлов, git add имя_файла - добавление конкретного файла

Аналог команды git add.

    git stage

Команда предшествует git commit. Вначале все изменения должны получить статус staged, и только затем committed.

Запись сделанных изменений в репозиторий

    git commit

Загрузка на сервер изменений, сделанных в ветке

    git push

Пример: git push origin foo - отправить на удаленный репозиторий локальную ветку “foo”

Отмена изменений

Чтобы привести репозиторий в первоначальное состояние

    git reset

Убрать все unstaged-изменения в проекте

    git clean

При создании новой ветки происходит создание копии уже существующего проекта.

Слияние и переключение между ветками

git merge имя ветки - соединение ветки “имя ветки” в текущую ветку;
git checkout имя ветки - переключение на ветку “имя ветки”;
Merge производится в ту ветку, которая является активной.
И нужно выбрать ту ветку, которую нужно вливать.

Команды для получения конкретного коммита вместо “вливания” всех изменений
Команда сherry-pick подтягивает только выбранный Commit вместо пачки коммитов, которые придется подтягивать при слиянии.
git cherry-pick <hash коммита> - из “наследуемой” ветки вливается коммит в текущую ветку. И сразу же делает коммит.
git cherry-pick -n <hash коммита> - из “наследуемой” ветки вливается коммит в текущую ветку. Коммит при этом не происходит.

Получение метаинформации

git log - показывает, какие изменения и коммиты происходили;
q- для выхода из лога;
git branch -a - команда просмотра, в какой ветке находится пользователь в данный момент.

Работа с . gitignore

Поскольку файлы, которые есть в репозитории, уже не могут быть проигнорированы, то их необходимо внести в файл .gitignore еще до того, как они попадут в репозиторий.
Если же это произошло, то необходимо удалить ненужные файлы.

Например, если вы уже выполнили git commit и файл .gitignore создали после этого, то файлы игнорироваться не будут, так как они уже отслеживаются git. Чтобы исключить файлы, которые уже отслеживаются git , но добалены в .gitignore , нужно выполнить git rm –cached <file>. В команду git rm можно передавать файлы, каталоги или glob-шаблоны. Например, git rm /* - удалить все файлы из каталога**/**. Для рукурсивного удаления нужно изпользовать опцию -r. Наример, git rm -r catalog/ - удалить все файлы из каталога /.

Сокрытие изменений

git stash apply - применить изменения к текущей версии
git stash list - вывести список изменений
git stash show - вывести последние изменния
git stash drop - удалить последние изменения в списке
git stash pop - [apply] + [drop]
git stash clear - очистить список изменений