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