title | author | fontsize | geometry | paper | lang | template |
---|---|---|---|---|---|---|
Памятка по командам Git |
А.В. Родионов |
14pt |
margin=2cm |
a4 |
russian |
default.html |
Начальные установки
Выполняются один раз для рабочего места, сохраняются в файле конфигурации данного пользователя.
git config --global user.name "Имя пользователя"
--- задание имени пользователя для последующего фиксирования в коммитахgit config --global user.email адрес@почты
--- адрес электронной почтыgit config --global core.editor путь-к-исполняемому-файлу
--- выбор программы текстового редактора для ввода сообщений
Сокращенные команды
Для удобства работы в командной строке можно сократить общеупотребительные команды до нескольких первых букв. Для этого нужно выполнить следующие команды:
git config --global alias.co checkout
git config --global alias.ci commit
git config --global alias.st status
git config --global alias.br branch
git config --global alias.hist 'log --pretty=format:"%h %ad | %s%d [%an]" --graph --date=short'
Команда git co
будет соответствовать git checkout
, git ci
--- git commit
, и т.д.
Подготовка к работе
git init
--- инициализация пустого репозитория в папке
Просмотр изменений
git status
--- просмотр состояния измененийgit log
--- история изменений данной веткиgit diff
--- сравнение изменений по отношению к текущей веткеgit diff имя-ветки
--- сравнение изменений по отношению к заданной веткеgit diff HEAD~2
--- сравнение изменений по отношению 2, 3 и т.д. коммиту от текущегоgit diff хэш1 хэш2
--- сравнение двух коммитов между собой
Внесение изменений в репозиторий
git add .
--- индексация изменений в текущей директорииgit add имя-директории
--- проиндексировать изменения в заданной папкеgit add имя-файла
--- проиндексировать изменения в одном файлеgit add имя-папки-или-файла --all
--- проиндексировать все изменения, включая удаления и переименования файловgit commit
--- сохранение (коммит) изменений с вызовом редактора для ввода сообщенияgit commit -a -m 'текст сообщения'
--- индексация всех изменений в текущей ветке вместе с сохранением и вводом сообщенияgit mv имя-файла новое-имя
--- переименовать файл в проектеgit rm имя-файла
--- удалить файлgit rm -r имя-директории
--- удалить директорию и ее содержимое- ключ
-f
при удалении заставляет игнорировать изменения в файлах.
Управление веткой
git checkout хэш-коммита
--- перенос ветки в заданное хэшем положение и загрузка версии текущих файлов из этого коммита. Переводит ветку в "безголовое" состояние.git checkout имя-ветки
--- выбор существующей ветки и сброс рабочих файлов в состояние ее вершины.git checkout -b имя-ветки
--- отвод новой ветки с заданным именем от текущего положения в ветке. Позволяет после возвращения к изменению, найденному с помощью командыgit log
, продолжить развивать его в новой ветке.git branch -a
--- отобразить все веткиgit branch -D имя-ветки
--- удалить ветку в текущей копии репозиторииgit merge имя-ветки
--- слить изменения из другой ветки в текущуюgit tag метка
--- пометка текущего коммита удобной для запоминания меткой, например "2.0". Команды, ожидающие идентификатор коммита, такие какcheckout
,reset
иrevert
могут получать метку вместо хэша коммита.git tag -d метка
--- удаление заданной метки
Отмена изменений
git reset
--- отмена действия командgit add
до последнего коммита изменений. Изменения и удаление файлов сохраняютсяgit reset --hard
--- сброс изменений в файлах текущей ветки до последнего коммита. Изменения и удаления файлов возвращаются до состояния предыдущего коммита.git reset хэш-коммита
--- перенос ветки в заданное место по коду хеша. Ветка будет переведена в "безголовое" состояние, для дальнейшей работы потребуется создать новую ветку. Текущие файлы при этом не сбрасываются.git revert имя-коммита
---отмена изменений в текущей ветке до состояния заданного коммита. При этом будет создан в свою очередь коммит, который нужно будет отметить сообщением в логе. Чтобы избежать открытия редактора, можно добавить флаг--no-edit
.git revert имя-или-диапазон-коммитов -n
--- внесение изменений, отменяющих заданные коммиты без создания коммита. При этом текущее дерево файлов редактируется, как будто это сделал сам пользователь.
Работа с удаленными репозиториями
git clone наименование git@github.com:логин/проект.git
--- загрузка проекта из удаленного репозитория.git remote add наименование git@github.com:логин/проект.git
--- добавление ссылки на удаленный репозиторий. Наименование задает его короткое имя, для основного репозитория обычно выбирается имя 'origin'.git pull
--- скачать новые измененияgit push
--- сохранений коммитов текущей ветки в удаленный репозиторийgit push --all
--- сохранение всех веток, в том числе новых, в удаленныйgit push -u origin --all
--- сохранение всех веток с одновременной их привязкой к удаленному репозиторию. Выполняется если существующий проект впервые сохраняется в новый репозиторий.git branch -u ветка
--- привязка ветки к удаленному репозиторию