Пост

Git для начинающих: основы системы контроля версий

Подробное руководство по Git для начинающих. Изучите основы Git, работу с репозиториями, ветвление и лучшие практики управления версиями кода.

Git для начинающих: основы системы контроля версий

Введение

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

Что такое Git?

  • Контроль версий: Отслеживание изменений
  • Распределенность: Локальная работа
  • Ветвление: Параллельная разработка
  • Слияние: Объединение изменений

Начало работы

1. Установка Git

Установка на разных системах

1
2
3
4
5
6
7
8
9
# Windows (Chocolatey)
choco install git

# Linux (Ubuntu)
sudo apt update
sudo apt install git

# macOS (Homebrew)
brew install git

Настройка Git

1
2
3
4
5
6
7
8
# Настройка имени пользователя
git config --global user.name "Your Name"

# Настройка email
git config --global user.email "your.email@example.com"

# Проверка настроек
git config --list

2. Первый репозиторий

Инициализация репозитория

1
2
3
4
5
6
7
8
# Создание нового репозитория
git init my-project
cd my-project

# Создание первого коммита
echo "# My Project" > README.md
git add README.md
git commit -m "Initial commit"

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

1. Работа с файлами

Добавление файлов

1
2
3
4
5
6
7
8
# Добавление конкретного файла
git add filename.txt

# Добавление всех файлов
git add .

# Добавление с проверкой статуса
git status

Создание коммитов

1
2
3
4
5
# Создание коммита с сообщением
git commit -m "Add new feature"

# Создание коммита с подробным описанием
git commit -m "Add new feature" -m "Detailed description of changes"

2. Просмотр истории

Просмотр коммитов

1
2
3
4
5
6
7
8
# Просмотр истории коммитов
git log

# Просмотр истории с графиком
git log --graph --oneline --all

# Просмотр изменений в файле
git log -p filename.txt

Просмотр изменений

1
2
3
4
5
6
7
8
# Просмотр изменений в рабочей директории
git diff

# Просмотр изменений в индексе
git diff --staged

# Просмотр изменений между коммитами
git diff commit1 commit2

Ветвление

1. Создание веток

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

1
2
3
4
5
6
7
8
# Создание новой ветки
git branch feature-branch

# Переключение на ветку
git checkout feature-branch

# Создание и переключение одной командой
git checkout -b feature-branch

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

1
2
3
4
5
6
7
8
9
10
11
# Слияние ветки в текущую
git merge feature-branch

# Слияние с отменой коммита слияния
git merge --no-ff feature-branch

# Разрешение конфликтов
git status
# Редактирование файлов
git add .
git commit -m "Resolve merge conflicts"

2. Удаленное взаимодействие

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

1
2
3
4
5
6
7
8
# Добавление удаленного репозитория
git remote add origin https://github.com/username/repo.git

# Отправка изменений
git push -u origin main

# Получение изменений
git pull origin main

Продвинутые техники

1. Временное сохранение

Stash

1
2
3
4
5
6
7
8
9
10
11
# Сохранение изменений
git stash save "WIP: Working on feature"

# Просмотр сохраненных изменений
git stash list

# Применение сохраненных изменений
git stash pop

# Удаление сохраненных изменений
git stash drop

2. Отмена изменений

Отмена коммитов

1
2
3
4
5
6
7
8
# Отмена последнего коммита
git reset --soft HEAD~1

# Отмена коммита с удалением изменений
git reset --hard HEAD~1

# Отмена изменений в файле
git checkout -- filename.txt

Работа в команде

1. Коллаборация

Создание Pull Request

1
2
3
4
5
6
7
8
9
# Создание ветки для новой функции
git checkout -b feature/new-feature

# Внесение изменений
git add .
git commit -m "Add new feature"

# Отправка изменений
git push origin feature/new-feature

Code Review

1
2
3
4
5
6
7
8
9
10
11
# Получение изменений
git fetch origin
git checkout feature/new-feature

# Просмотр изменений
git diff main..feature/new-feature

# Внесение правок
git add .
git commit --amend
git push -f origin feature/new-feature

2. Разрешение конфликтов

Стратегии слияния

1
2
3
4
5
6
7
8
9
10
11
# Слияние с сохранением истории
git merge --no-ff feature-branch

# Перебазирование изменений
git rebase main

# Разрешение конфликтов
git status
# Редактирование файлов
git add .
git commit -m "Resolve conflicts"

Интеграция с IDE

1. Visual Studio Code

Настройка Git в VS Code

1
2
3
4
5
{
    "git.enableSmartCommit": true,
    "git.autofetch": true,
    "git.confirmSync": false
}

2. JetBrains IDEs

Настройка Git в IntelliJ

  • Включение Git в настройках
  • Настройка SSH ключей
  • Интеграция с GitHub

CI/CD интеграция

1. GitHub Actions

Настройка workflow

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
name: CI
on:
  push:
    branches: [ main ]
  pull_request:
    branches: [ main ]

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v2
    - name: Build
      run: |
        npm install
        npm run build

2. GitLab CI

Настройка pipeline

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
stages:
  - build
  - test
  - deploy

build:
  stage: build
  script:
    - npm install
    - npm run build

test:
  stage: test
  script:
    - npm test

deploy:
  stage: deploy
  script:
    - echo "Deploy to production"

Заключение

Git - это мощный инструмент для управления версиями кода. Понимание основ Git и правильное использование его возможностей поможет эффективно работать в команде и поддерживать качество кода.

Авторский пост защищен лицензией CC BY 4.0 .

© Oleg Dobrynin. Некоторые права защищены.