Перейти к содержанию
  • Лента
  • Категории
  • Последние
  • Метки
  • Популярные
  • Пользователи
  • Группы
Свернуть
exlends
Категории
  1. Главная
  2. Категории
  3. Системное Администрирование
  4. Полный гайд-шпаргалка по Git: от основ до эффективной работы

Полный гайд-шпаргалка по Git: от основ до эффективной работы

Запланировано Прикреплена Закрыта Перенесена Системное Администрирование
3 Сообщения 1 Постеры 51 Просмотры
  • Сначала старые
  • Сначала новые
  • По количеству голосов
Ответить
  • Ответить, создав новую тему
Авторизуйтесь, чтобы ответить
Эта тема была удалена. Только пользователи с правом управления темами могут её видеть.
  • JspiJ Не в сети
    JspiJ Не в сети
    Jspi
    js
    написал в отредактировано
    #1

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

    Ключевые понятия:
    Репозиторий — хранилище вашего проекта с историей изменений

    Коммит — фиксация изменений в репозитории с уникальным идентификатором

    Ветка — отдельная линия разработки
    Рабочая область — файлы, с которыми вы работаете локально

    Индекс (staging area) — область подготовки изменений к коммиту

    Настройка Git

    # Установка имени пользователя и email
    git config --global user.name "Ваше Имя"
    git config --global user.email "ваш@email.com"
    
    # Установка редактора по умолчанию
    git config --global core.editor "code --wait"
    
    # Цветной вывод
    git config --global color.ui auto
    
    # Просмотр настроек
    git config --list
    

    Основные команды для начала работы

    Создание репозитория

    # Инициализация нового репозитория
    git init
    
    # Клонирование существующего репозитория
    git clone https://github.com/username/repository.git
    

    Состояние репозитория

    # Проверка статуса
    git status
    
    # Краткий статус
    git status -s
    

    Рабочий процесс: добавление и коммиты

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

    # Добавить конкретный файл
    git add index.html
    
    # Добавить все измененные файлы
    git add .
    
    # Добавить все файлы с расширением .js
    git add *.js
    
    # Интерактивное добавление
    git add -p
    

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

    # Коммит с сообщением
    git commit -m "Добавлена главная страница"
    
    # Коммит с открытием редактора для сообщения
    git commit
    
    # Добавить изменения и сделать коммит (только для отслеживаемых файлов)
    git commit -am "Сообщение коммита"
    
    # Исправление последнего коммита
    git commit --amend
    

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

    # Просмотр истории коммитов
    git log
    
    # Компактный вывод истории
    git log --oneline
    
    # Графическое представление веток
    git log --oneline --graph --all
    
    # Просмотр изменений в файлах
    git diff
    
    # Просмотр изменений в индексе
    git diff --staged
    
    # Показ изменений в конкретном коммите
    git show <хэш_коммита>
    

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

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

    # Создание новой ветки
    git branch feature-branch
    
    # Переключение на ветку
    git checkout feature-branch
    
    # Создание и переключение на новую ветку
    git checkout -b new-feature
    
    # Просмотр всех веток
    git branch -a
    
    # Удаление ветки
    git branch -d branch-name
    

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

    # Переключиться на ветку, в которую хотите влить изменения
    git checkout main
    
    # Влить изменения из feature-branch в main
    git merge feature-branch
    

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

    При конфликте слияния:

    • Git покажет конфликтующие файлы
    • Отредактируйте файлы, оставив нужные изменения
    • Добавьте исправленные файлы в индекс: git add .
    • Завершите слияние: git commit

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

    Подключение и синхронизация

    # Добавление удаленного репозитория
    git remote add origin https://github.com/user/repo.git
    
    # Просмотр удаленных репозиториев
    git remote -v
    
    # Загрузка изменений с удаленного репозитория
    git fetch origin
    
    # Скачивание изменений и слияние с текущей веткой
    git pull origin main
    
    # Отправка изменений на удаленный репозиторий
    git push origin main
    
    # Отправка ветки на удаленный репозиторий
    git push -u origin feature-branch
    

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

    Отмена в рабочей области

    # Отмена изменений в конкретном файле
    git checkout -- filename.txt
    
    # Отмена всех изменений в рабочей области
    git checkout -- .
    

    Отмена в индексе

    # Удаление файла из индекса (но сохранение изменений)
    git reset HEAD filename.txt
    

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

    # Отмена последнего коммита (сохраняет изменения в рабочей области)
    git reset --soft HEAD~1
    
    # Отмена последнего коммита (удаляет изменения)
    git reset --hard HEAD~1
    
    # Отмена до определенного коммита
    git reset --hard <хэш_коммита>
    

    Полезные техники и команды

    Stash — временное сохранение изменений

    # Сохранить текущие изменения
    git stash
    
    # Посмотреть список stash
    git stash list
    
    # Вернуть сохраненные изменения
    git stash pop
    
    # Удалить stash
    git stash drop
    

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

    # Поиск коммитов по сообщению
    git log --grep="исправление"
    
    # Поиск изменений, содержащих строку
    git log -S"function_name"
    

    Работа с тегами

    # Создание легковесного тега
    git tag v1.0
    
    # Создание аннотированного тега
    git tag -a v1.1 -m "Версия 1.1"
    
    # Отправка тегов на удаленный репозиторий
    git push origin --tags
    

    Продвинутые возможности

    Перебазирование (rebase)

    # Перебазирование текущей ветки на main
    git rebase main
    
    # Интерактивное перебазирование
    git rebase -i HEAD~3
    

    Временное игнорирование изменений в файле

    # Игнорировать изменения в файле (удобно для конфигов)
    git update-index --assume-unchanged config.json
    
    # Снова отслеживать изменения
    git update-index --no-assume-unchanged config.json
    

    Практические советы по использованию Git

    Как писать хорошие сообщения коммитов:

    • Краткое описание (до 50 символов) — что сделано?
    • Подробное описание (если нужно) — почему и как сделано?
    • Используйте повелительное наклонение: “Добавить”, “Исправить”, “Обновить”

    Пример хорошего сообщения:

    Добавить аутентификацию пользователя
    
    - Реализована JWT-аутентификация
    - Добавлены middleware для проверки токена
    - Обновлены модели пользователей
    

    Стратегия ветвления:
    main/master — стабильная версия, готовая к production

    • develop — основная ветка для разработки
    • feature/* — ветки для новых функциональностей
    • hotfix/* — срочные исправления для production
    • release/* — подготовка к выпуску версии

    Эффективная работа:

    • Часто делайте коммиты (каждый логический этап)
    • Перед pull request делайте rebase на основную ветку
    • Используйте .gitignore для исключения ненужных файлов
    • Регулярно синхронизируйтесь с удаленным репозиторием

    Полезные алиасы для .gitconfig

    Добавьте в ваш .gitconfig в секцию [alias]:

    [alias]
        co = checkout
        br = branch
        ci = commit
        st = status
        last = log -1 HEAD
        graph = log --oneline --graph --all
        unstage = reset HEAD --
    

    Решение распространенных проблем

    “Я сделал коммит не в ту ветку”

    # Создать новую ветку из текущего состояния
    git branch new-feature
    
    # Переключиться на правильную ветку
    git checkout correct-branch
    
    # Перенести коммит (через reset или cherry-pick)
    git reset --hard HEAD~1  # отменить коммит
    git checkout correct-branch
    git cherry-pick <хэш_коммита>
    

    “Я забыл добавить файл в последний коммит”

    # Добавить забытый файл
    git add forgotten-file.txt
    
    # Исправить последний коммит
    git commit --amend
    
    1 ответ Последний ответ
    1
    • JspiJ Не в сети
      JspiJ Не в сети
      Jspi
      js
      написал в отредактировано
      #2

      Алиас hist для удобного просмотра истории Git

      Для более информативного вывода создайте расширенный алиас:

      git config --global alias.hist "log --all --graph --pretty=format:'%C(yellow)%h%Creset %ad | %s%d %Cgreen[%an]%Creset' --date=short"
      

      Этот алиас покажет:

      • Желтый хэш коммита
      • Дату коммита
      • Сообщение коммита и ссылки (ветки, теги)
      • Зеленое имя автора

      Пример вывода

      * 5a4b3c2 2023-10-15 | Добавить аутентификацию пользователя (HEAD -> main) [Иван Петров]
      *   1d2e3f4 2023-10-14 | Merge branch 'feature/api' [Мария Сидорова]
      |\  
      | * a1b2c3d 2023-10-13 | Реализовать API endpoints (origin/feature/api) [Алексей Иванов]
      | * d4e5f6a 2023-10-12 | Добавить модели данных [Алексей Иванов]
      |/  
      * 7e8f9g0 2023-10-11 | Инициализация проекта [Иван Петров]
      

      Дополнительные полезные алиасы для истории

      # Подробная история
      git config --global alias.hist-detailed "log --all --graph --pretty=format:'%C(yellow)%h%Creset %ad | %s%d %Cgreen[%an]%Creset%n%b' --date=short"
      
      # История с статистикой изменений
      git config --global alias.hist-stat "log --all --graph --pretty=format:'%C(yellow)%h%Creset %ad | %s%d %Cgreen[%an]%Creset' --date=short --stat"
      
      # История за последние 7 дней
      git config --global alias.hist-week "log --all --since='7 days ago' --oneline --graph"
      
      1 ответ Последний ответ
      0
      • JspiJ Не в сети
        JspiJ Не в сети
        Jspi
        js
        написал в отредактировано
        #3

        Git Fetch

        Что делает:

        • Загружает изменения из удаленного репозитория в ваш локальный
        • Не изменяет ваши рабочие файлы или текущую ветку
        • Обновляет удаленные ссылки (origin/main, origin/develop и т.д.)

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

        # Получить все изменения из всех удаленных репозиториев
        git fetch
        
        # Получить изменения из конкретного удаленного репозитория
        git fetch origin
        
        # Получить изменения для конкретной ветки
        git fetch origin main
        
        # Получить изменения и очистить устаревшие ветки
        git fetch --prune
        

        Зачем использовать:

        • Увидеть изменения перед интеграцией
        • Обновить информацию о удаленных ветках
        • Безопасно проверить чужие изменения перед слиянием

        Типичный workflow:

        1. git fetch - получить изменения
        2. git diff origin/main - посмотреть что изменилось
        3. git merge origin/main - влить изменения

        Git Fetch .

        Что делает:

        • Использует текущий репозиторий как источник для обновления ссылок
        • Позволяет манипулировать ветками без сетевого взаимодействия

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

        # Обновить ветку на основе текущего состояния
        git fetch . main:feature-branch
        
        # Принудительное обновление ветки (осторожно!)
        git fetch . main:feature-branch --force
        

        Зачем использовать:

        • Быстрое создание/обновление веток без переключения
        • Синхронизация удаленных ссылок с локальным состоянием
        • Создание резервных копий перед рискованными операциями

        Отличие от обычного fetch:

        • Работает только с локальным репозиторием
        • Не требует сетевого подключения
        • Может перезаписывать историю (с флагом --force)

        Безопасное использование

        Обычный fetch — безопасен, рекомендуется для повседневного использования

        Fetch с точкой — продвинутая команда, используйте с осторожностью:

        • Всегда проверяйте состояние перед использованием
        • Создавайте резервные копии веток
        • Избегайте --force без крайней необходимости

        Для большинства задач обычный git fetch вполне достаточен. git fetch . — это специализированный инструмент

        1 ответ Последний ответ
        1

        Категории

        • Главная
        • Новости
        • Фронтенд
        • Бекенд
        • Языки программирования

        Контакты

        • Сотрудничество
        • info@exlends.com
        • Наш чат
        • Наш ТГ канал

        © 2024 - 2025 ExLends, Inc. Все права защищены.

        Политика конфиденциальности
        • Войти

        • Нет учётной записи? Зарегистрироваться

        • Войдите или зарегистрируйтесь для поиска.
        • Первое сообщение
          Последнее сообщение
        0
        • Лента
        • Категории
        • Последние
        • Метки
        • Популярные
        • Пользователи
        • Группы