Примеры основных команд для работы с git.
Справка
Вывод всей справки:
help
Открыть руководство по отдельной команде (откроется в браузере):
git help add
Показать справку в терминале по отдельной команде:
git add -h
Настройки
Отображение версии:
git --version
Вывод все настройки и файлы где они находятся:
git config --list --show-origin
Указываем свои данные для коммитов:
git config user.name "Ваше имя" git config user.email your_email@mail_server.domain
Указываем свои данные для коммитов глобально:
git config --global user.name "Ваше имя" git config --global user.email your_email@mail_server.domain
Вывод текущего имени и E-mail осуществляется схожим образом:
git config user.name git config user.email git config user.name ; git config user.email
Проверка соединения с удаленным сервером:
ssh -T username@servername.serverdomain
Репозитории
Инициализация репозитория:
git init
Клонирование:
git clone URL_REPOSITORY git clone URL_REPOSITORY FOLDER_NAME
Очистка репозитория. Удаление всех локальных неотслеживаемых файлов, останутся только отслеживаемые:
git clean -fd git clean -fdx (или с параметром -x, это удалит дополнительно и игнорируемые)
Вывод списка удаленных репозиториев:
git remote git remote -v
Добавление удаленного репозитория:
git remote add REPOSITORY_NAME REPOSITORY_URL
Изменить URL удаленного репозитория:
git remote set-url REPOSITORY_NAME REPOSITORY_URL
Изменить наименование удаленного репозитория:
git remote rename REPOSITORY_NAME_OLD REPOSITORY_NAME_NEW
Получение изменений из удаленного репозитория:
git fetch REPOSITORY_NAME git fetch REPOSITORY_NAME BRANCH_NAME git pull REPOSITORY_NAME git pull REPOSITORY_NAME BRANCH_NAME git fetch REPOSITORY_NAME git merge REPOSITORY_NAME/BRANCH_NAME git fetch --all git reset --hard REPOSITORY_NAME/BRANCH_NAME (с перезаписью)
Создание новой ветки из удаленного репозитория и переход на неё:
git fetch origin git checkout -b BRANCH_NAME origin/BRANCH_NAME
Отправка изменений на удаленный сервер:
git push REPOSITORY_NAME BRANCH_NAME
Просмотр информации об удаленном репозитории:
git remote show REMOTE_NAME
Переименование удаленного репозитория:
git remote rename NAME_OLD NAME_NEW
Удаление удаленного репозитория:
git remote rm REPOSITORY_NAME
Игнорирование файлов — .gitignore
Директивы в этом блоке необходимо размещать в файле «.gitignore». Это не команды.
Игнорировать конкретный файл:
file_name.pdf
Исключение всех файлов с расширением «txt»:
*.txt
Отслеживать файл «test.txt» даже если он попадает под исключения в других правилах:
!my_super_file.txt
Игнорировать файл «need_root_ignore.rtf» только в корневой директории (т.е. если он будет в поддиректориях, то он игнорироваться не будет):
/need_root_ignore.rtf
Игнорировать все файлы в директории «no_need_git»:
no_need_git/
Игнорировать все PDF файлы в директории «documents»:
documents/*.pdf
Игнорировать все PDF файлы в директории «documents» и её поддиректориях (т.е. везде где только можно):
documents/**/*.pdf
Коммиты
Вывод состояния репозитория:
git status git status --short git status --ignored
Вывод изменений:
git diff
Отмена изменений до последнего коммита:
git checkout file.name
Индексация файлов для коммита:
git add file.name git add .
Удаление файлов из индекса:
git rm --cached file.name git reset
Добавление коммита:
git commit -m "Текст коммита".
Добавить подготовленные изменения в предыдущий коммит:
git commit --amend или git commit --amend -m "New message test." (меняем сообщение через консоль) или git commit --amend -C HEAD (эта команда не изменит сообщение)
Исправить автора последнего коммита:
git commit --amend --no-edit --author "New Name <newname@service.domain>"
Просмотр логов:
git log git log --pretty=oneline git log --pretty=format:"%h - %an, %ar : %s" git log --author=NAME_OR_EMAIL git log -- PATH_TO_FILE git show COMMIT_ID:FILE_NAME
Убрать из индекса все подготовленные изменения:
git reset
Сбросить все изменения (подготовленные и нет) до исходного состояния:
git reset --hard
Сбросить все изменения к выбранному коммиту:
git reset --hard COMMIT_ID
Ветки
Список веток:
git branch git branch -a git branch -v git branch --merged git branch --no-merged
Создание новой ветки:
git branch BRANCH_NAME
Переключение на другую ветку:
git checkout BRANCH_NAME git checkout -b BRANCH_NAME (создать BRANCH_NAME и переключиться на неё)
Создать ветку на указанном коммите и перейти на неё:
git checkout -b BRANCH_NAME COMMIT_ID
Слияние с текущей веткой (т.е. изменения из «BRANCH_NAME» попадут в текущую активную ветку):
git merge BRANCH_NAME
Удаление отработанной ветки:
git branch -d BRANCH_NAME git branch -D BRANCH_NAME (если ветка не была влита в другую/отслеживаемую)
Переименование ветки:
git branch -m NEW_BRANCH_NAME (текущая ветка) git branch -m OLD_BRANCH_NAME NEW_BRANCH_NAME
Показать список удаленных веток:
git remote show REMOTE_REPOSITORY_NAME
Создать локальную ветку на основе «ветки слежения» (примеры ниже делают одно и то же):
git checkout -b BRANCH_NAME REMOTE_REPOSITORY_NAME/BRANCH_NAME git checkout --track REMOTE_REPOSITORY_NAME/BRANCH_NAME git checkout BRANCH_NAME
Создать новую удаленную ветку из текущей локальной:
git push REMOTE_REPOSITORY HEAD или git push -u REMOTE_REPOSITORY HEAD (чтобы она отслеживала удаленную)
Настойка отслеживания локальной ветки на удаленную:
git branch --set-upstream-to REMOTE_REPOSITORY_NAME/REMOTE_BRANCH_NAME # или сокращенно: git branch -u REMOTE_REPOSITORY_NAME/REMOTE_BRANCH_NAME
Удаление ветки на удаленном сервере:
git push REMOTE_REPOSITORY_NAME --delete BRANCH_NAME
Слияние в текущую ветку без коммита (чтобы проверить):
git merge --no-ff --no-commit my-branch --no-commit означает не делать коммит --no-ff означает сохранение данных о ветке
Сбросить все изменения до состояния удаленной ветки:
git reset --hard REPOSITORY_NAME/BRANCH_NAME
Слить одну ветку в другую откуда угодно:
git merge TARGET_BRANCH_NAME SOURCE_BRANCH_NAME
Полезные ссылки
- Руководство по git.
- Команды git.
- Загрузка git.
- Графические клиенты.
- Обучающие видео.
- Правила полета на Git (один из лучших мануалов в сети по git’у).
Добавить комментарий
Для отправки комментария вам необходимо авторизоваться.