🖥️
Horvitz
Обо мне
  • Содержание
  • DevOps
    • Docker и Docker Compose
    • Ansible
    • Terraform
  • WEB
    • Nginx
  • Linux
    • Удобный терминал
    • IPtables
  • windows
    • Winget
  • VCS
    • Шпаргалка Git
    • Установка и настройка Gitlab EE
    • Установка и настройка Gitlab Runner
  • Мониторинг
    • Grafana
  • Артефакты
    • Nexus Sonatype
Powered by GitBook
On this page
  • Шпаргалка Git
  • Настройка Git
  • Создание и Клонирование Репозитория
  • Основные Команды
  • Статус и Добавление Файлов
  • Коммит изменений
  • Работа с Удаленными Репозиториями
  • Работа с Ветками
  • Работа с Удаленными Ветками
  • Просмотр Истории
  • Сравнение Изменений
  • Отмена Изменений
  • Работа с Удаленными Репозиториями
  • Теги
  • Сохранение Изменений (Stash)
  • Работа с Submodules (Подмодулями)
  • Ребейз (Rebase)
  • Инструменты для Решения Конфликтов
  • Дополнительные Полезные Команды
  • Алиасы (Псевдонимы)
  • Настройка .gitignore
  • Получение Справки
  • Полезные Практики

Was this helpful?

Edit on GitHub
  1. VCS

Шпаргалка Git

Шпаргалка по Git

Шпаргалка Git

Git — это распределенная система управления версиями, которая позволяет отслеживать изменения в коде и работать совместно с другими разработчиками.

Настройка Git

Перед началом работы необходимо настроить Git с помощью следующих команд:

  • Установка имени пользователя:

    git config --global user.name "Ваше имя"

    Это имя будет отображаться в информации о коммитах.

  • Установка электронной почты:

    git config --global user.email "email@example.com"

    Email также будет отображаться в коммитах.

  • Проверка текущих настроек:

    git config --list

    Показывает все текущие настройки Git.

  • Настройка предпочтительного редактора:

    git config --global core.editor "vim"

    Устанавливает редактор по умолчанию для Git.

  • Выбор отображения цветов:

    git config --global color.ui auto

    Включает цветное отображение в командной строке.

Создание и Клонирование Репозитория

  • Инициализация нового репозитория:

    git init

    Создает новый локальный репозиторий в текущей директории.

  • Клонирование существующего репозитория:

    git clone <URL>

    Клонирует удаленный репозиторий в новую директорию.

    Пример:

    git clone https://github.com/user/repo.git

Основные Команды

Статус и Добавление Файлов

  • Проверка статуса репозитория:

    git status

    Показывает отслеживаемые и неотслеживаемые файлы, изменения и статус индекса.

  • Добавление файлов в индекс:

    git add <файл>

    Добавляет указанный файл в индекс (staging area).

    Добавление всех файлов:

    git add .

    Добавляет все новые и измененные файлы в индекс.

Коммит изменений

  • Создание коммита:

    git commit -m "Сообщение коммита"

    Фиксирует изменения с указанным сообщением.

  • Автоматическое добавление и коммит:

    git commit -a -m "Сообщение коммита"

    Добавляет изменения отслеживаемых файлов и создает коммит.

Работа с Удаленными Репозиториями

  • Отправка изменений:

    git push

    Отправляет коммиты в удаленный репозиторий по умолчанию.

    Отправка на определенную ветку:

    git push origin <ветка>
  • Получение изменений:

    git pull

    Забирает изменения из удаленного репозитория и сливает их с текущей веткой.

    Разница между git fetch и git pull:

    • git fetch загружает изменения из удаленного репозитория, но не сливает их.

    • git pull сочетает git fetch и git merge.

Работа с Ветками

  • Просмотр локальных веток:

    git branch

    Выводит список всех локальных веток.

  • Создание новой ветки:

    git branch <название_ветки>

    Создает новую ветку.

  • Переключение между ветками:

    git checkout <название_ветки>

    Переключается на указанную ветку.

  • Создание и переключение на новую ветку:

    git checkout -b <название_ветки>

    Создает новую ветку и сразу переключается на нее.

  • Слияние веток:

    git merge <название_ветки>

    Сливает указанную ветку с текущей.

  • Удаление ветки:

    git branch -d <название_ветки>

    Удаляет локальную ветку. Если ветка не была слита, используйте принудительное удаление:

    git branch -D <название_ветки>

Работа с Удаленными Ветками

  • Просмотр удаленных веток:

    git branch -r
  • Удаление удаленной ветки:

    git push origin --delete <название_ветки>
  • Получение всех веток и тегов:

    git fetch --all

Просмотр Истории

  • Полная история коммитов:

    git log

    Показывает историю коммитов с деталями.

  • Краткий формат истории:

    git log --oneline

    Отображает историю в одну строку на коммит.

  • Графическое отображение:

    git log --graph --all --decorate --oneline

    Показывает историю в виде графа, отображая ветки и коммиты.

  • Фильтрация по автору:

    git log --author="Имя"
  • Поиск по сообщению коммита:

    git log --grep="Текст поиска"

Сравнение Изменений

  • Просмотр изменений в рабочем каталоге:

    git diff

    Показывает изменения, которые еще не добавлены в индекс.

  • Просмотр изменений в индексе:

    git diff --staged

    Показывает изменения, подготовленные для коммита.

  • Сравнение между двумя ветками:

    git diff <ветка1> <ветка2>

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

  • Отмена изменений в файле:

    git checkout -- <файл>

    Возвращает файл к последнему коммиту, отменяя несохраненные изменения.

  • Убрать файл из индекса:

    git reset HEAD <файл>

    Убирает файл из индекса, оставляя его изменения в рабочем каталоге.

  • Отмена последнего коммита (с сохранением изменений):

    git reset --soft HEAD~1

    Сбрасывает коммит, оставляя изменения в индексе.

  • Отмена последнего коммита (с удалением изменений):

    git reset --hard HEAD~1

    Полностью удаляет последний коммит и все изменения.

  • Создание обратного коммита:

    git revert <хеш_коммита>

    Создает новый коммит, отменяющий указанный коммит.

Работа с Удаленными Репозиториями

  • Просмотр удаленных репозиториев:

    git remote -v

    Показывает имена и URL удаленных репозиториев.

  • Добавление удаленного репозитория:

    git remote add origin <URL>

    Добавляет удаленный репозиторий с именем origin.

  • Переименование удаленного репозитория:

    git remote rename <старое_имя> <новое_имя>
  • Удаление удаленного репозитория:

    git remote remove <имя>

Теги

  • Просмотр тегов:

    git tag

    Показывает список всех тегов.

  • Создание аннотированного тега:

    git tag -a v1.0 -m "Версия 1.0"
  • Создание легковесного тега:

    git tag v1.0
  • Просмотр информации о теге:

    git show v1.0
  • Отправка тегов в удаленный репозиторий:

    git push origin v1.0

    Отправляет указанный тег.

    Отправка всех тегов:

    git push origin --tags
  • Удаление тега локально:

    git tag -d v1.0
  • Удаление тега в удаленном репозитории:

    git push origin :refs/tags/v1.0

Сохранение Изменений (Stash)

  • Сохранение незаконченных изменений:

    git stash

    Сохраняет текущие изменения и очищает рабочий каталог.

  • Просмотр сохраненных изменений:

    git stash list
  • Применение последних сохраненных изменений:

    git stash apply
  • Применение и удаление из списка:

    git stash pop
  • Удаление сохраненных изменений:

    git stash drop
  • Сохранение с сообщением:

    git stash save "Описание"
  • Применение конкретного stash:

    git stash apply stash@{2}

Работа с Submodules (Подмодулями)

  • Добавление подмодуля:

    git submodule add <URL> <путь>
  • Инициализация и обновление подмодулей:

    git submodule update --init --recursive
  • Обновление подмодулей до последних версий:

    git submodule update --remote
  • Удаление подмодуля:

    git submodule deinit -f <путь_к_подмодулю>
    rm -rf .git/modules/<путь_к_подмодулю>
    git rm -f <путь_к_подмодулю>

Ребейз (Rebase)

  • Перебазирование текущей ветки на другую:

    git rebase <ветка>
  • Применение интерактивного ребейза:

    git rebase -i HEAD~3

    Позволяет изменить последние три коммита (объединить, изменить сообщения и т.д.).

  • Отмена ребейза:

    git rebase --abort
  • Продолжение ребейза после разрешения конфликтов:

    git rebase --continue

Инструменты для Решения Конфликтов

  • Показать файлы с конфликтами:

    git diff --name-only --diff-filter=U
  • Отметить конфликт как разрешенный:

    git add <файл>
  • Продолжить процесс после разрешения конфликтов:

    git merge --continue

    или

    git rebase --continue

Дополнительные Полезные Команды

  • Просмотр автора изменений в файле:

    git blame <файл>

    Показывает, кто и когда изменял каждую строку в файле.

  • Просмотр содержимого конкретного коммита:

    git show <хеш_коммита>
  • Удаление файла из репозитория и файловой системы:

    git rm <файл>
  • Переименование или перемещение файла:

    git mv <старое_имя> <новое_имя>
  • Очистка неотслеживаемых файлов:

    git clean -f

    Удаляет неотслеживаемые файлы из рабочей директории.

    Удаление неотслеживаемых директорий:

    git clean -fd
  • Поиск по истории коммитов:

    git log -S "фрагмент_кода"

    Показывает коммиты, в которых добавлен или удален указанный фрагмент кода.

  • Изменение последнего коммита:

    git commit --amend

    Позволяет изменить сообщение последнего коммита или добавить забытые изменения.

Алиасы (Псевдонимы)

Вы можете создать собственные алиасы для часто используемых команд:

  • Создание алиаса:

    git config --global alias.co checkout

    Теперь вы можете использовать git co вместо git checkout.

  • Пример полезных алиасов:

    git config --global alias.st status
    git config --global alias.br branch
    git config --global alias.cm commit
    git config --global alias.df diff
    git config --global alias.lg "log --graph --oneline --all --decorate"

Настройка .gitignore

Файл .gitignore используется для указания файлов и директорий, которые Git должен игнорировать.

Пример содержимого .gitignore:

# Игнорировать все файлы с расширением .log
*.log

# Игнорировать директорию build/
build/

# Игнорировать файл secrets.txt
secrets.txt

Получение Справки

  • Общая справка:

    git help
  • Справка по конкретной команде:

    git help <команда>

    или

    git <команда> --help

Полезные Практики

  • Регулярно коммитьте небольшие изменения.

  • Используйте понятные сообщения коммитов.

  • Старайтесь избегать работы в ветке master или main.

  • Периодически синхронизируйтесь с удаленным репозиторием.

  • Перед слиянием обновите свою ветку:

    git fetch origin
    git merge origin/main
  • Разрешайте конфликты сразу после их возникновения.


Это подробная шпаргалка по Git, которая поможет вам в повседневной работе с системой контроля версий. Практикуйтесь и изучайте документацию для более глубокого понимания возможностей Git.

PreviousWingetNextУстановка и настройка Gitlab EE

Last updated 4 months ago

Was this helpful?