Работа с git

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

Инициализация нового репозитория. При клонировании удаленного репозитория (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 - очистить список изменений

E-mail для связи: goodigy@goodigy.ru