Это многостраничный печатный вид этого раздела. Нажмите что бы печатать.

Вернуться к обычному просмотру страницы.

Репозитории (repository)

Работа с репозиториями в Git

Что такое Git репозиторий?

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

Основные характеристики Git репозитория:

  • История изменений: Репозиторий содержит полную историю изменений всех файлов, что позволяет вам просматривать и восстанавливать предыдущие версии проекта.
  • Ветки: Возможность создавать и работать с несколькими версиями проекта одновременно, что позволяет параллельную разработку новых функций, исправление ошибок и т.д.
  • Коммиты: Каждое изменение в репозитории фиксируется в виде коммитов, которые содержат описание изменений, автора, временную метку и ссылку на предыдущие коммиты.
  • Удалённые репозитории: Возможность синхронизации с удалёнными репозиториями для обмена изменениями с другими разработчиками.

Типы репозиториев:

  • Локальный репозиторий: Хранится на вашем компьютере и содержит всю историю изменений для вашего проекта.
  • Удалённый репозиторий: Хранится на сервере (например, GitHub, GitLab, Bitbucket) и позволяет нескольким пользователям работать с одним и тем же проектом.

Основные команды для работы с репозиторием:

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

    git init
    
  • Клонирование удалённого репозитория:

    git clone <URL-репозитория>
    
  • Просмотр состояния репозитория:

    git status
    
  • Фиксация изменений:

    git commit -m "Сообщение коммита"
    
  • Просмотр истории коммитов:

    git log
    

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

1 - Как добавить внешний репозиторий к локальному репозиторию?

Шаг 1: Откройте терминал (командную строку)

Для начала откройте терминал (на Windows это может быть Git Bash, Command Prompt или PowerShell, на macOS и Linux это Terminal).

Шаг 2: Перейдите в папку вашего локального репозитория

Используйте команду cd, чтобы перейти в директорию вашего локального репозитория. Например:

cd путь/к/вашему/репозиторию

Шаг 3: Добавьте удаленный репозиторий

Используйте команду git remote add, чтобы добавить удаленный репозиторий. Вам понадобится URL удаленного репозитория. Обычно это HTTPS или SSH URL, который вы получаете из вашего удаленного репозитория (например, GitHub, GitLab или Bitbucket).

Формат команды:

git remote add <имя-удаленного-репозитория> <url-удаленного-репозитория>

Обычно имя удаленного репозитория по умолчанию называется origin. Например:

git remote add origin https://github.com/username/repository.git

Шаг 4: Проверьте добавленный удаленный репозиторий

Чтобы убедиться, что удаленный репозиторий был добавлен корректно, используйте команду:

git remote -v

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

Шаг 5: Синхронизируйте ваш локальный репозиторий с удаленным

Теперь вы можете синхронизировать ваш локальный репозиторий с удаленным, используя команды git fetch, git pull и git push.

  • git fetch: Загружает все ветки и их последние изменения из удаленного репозитория в ваш локальный репозиторий, но не обновляет вашу текущую рабочую ветку.

    git fetch origin
    
  • git pull: Загружает изменения из удаленного репозитория и автоматически сливает их с вашей текущей рабочей веткой.

    git pull origin <имя-ветки>
    
  • git push: Отправляет ваши локальные изменения в удаленный репозиторий.

    git push origin <имя-ветки>
    

Теперь ваш локальный репозиторий настроен для работы с удаленным репозиторием. Вы можете использовать команды git push и git pull, чтобы отправлять и получать изменения между локальным и удаленным репозиториями.

2 - Как изменить адрес удалённого репозитория?

  1. Откройте терминал или командную строку.

  2. Перейдите в директорию вашего локального репозитория:

    cd /путь/к/вашему/репозиторию
    
  3. Проверьте существующие удалённые репозитории и их адреса:

    git remote -v
    

    Это покажет список текущих удалённых репозиториев и их URL.

  4. Измените URL удалённого репозитория:

    git remote set-url <имя-удалённого-репозитория> <новый-URL-удалённого-репозитория>
    

    Замените <имя-удалённого-репозитория> на имя удалённого репозитория, который вы хотите изменить (например, origin), и <новый-URL-удалённого-репозитория> на новый URL.

    Пример:

    git remote set-url origin https://github.com/user/new-repository.git
    
  5. Проверьте, что URL был успешно изменён:

    git remote -v
    

    Вы должны увидеть новый URL в списке удалённых репозиториев.

Полезные команды:

Теперь вы знаете, как изменить адрес удалённого репозитория в Git. Если у вас есть дополнительные вопросы, не стесняйтесь задавать!

3 - Как создать новый локальный репозиторий?

Шаг 1: Откройте терминал или командную строку

Откройте терминал (на Mac или Linux) или командную строку (на Windows).

Шаг 2: Перейдите в директорию, где вы хотите создать новый репозиторий

Используйте команду cd, чтобы перейти в нужную директорию.

cd /путь/к/директории

Например, если вы хотите создать репозиторий в папке Projects в вашем домашнем каталоге, выполните:

cd ~/Projects

Шаг 3: Создайте новую директорию для вашего репозитория (если её ещё нет)

Если директория для вашего нового репозитория ещё не существует, создайте её:

mkdir имя-нового-репозитория

Например:

mkdir my-new-repo

Шаг 4: Перейдите в новую директорию

Используйте команду cd, чтобы перейти в новую директорию:

cd имя-нового-репозитория

Например:

cd my-new-repo

Шаг 5: Инициализируйте новый локальный репозиторий

Выполните команду git init, чтобы инициализировать новый репозиторий:

git init

Эта команда создаст поддиректорию .git, которая содержит все файлы и метаданные вашего репозитория.

Шаг 6: Проверьте, что репозиторий создан

Используйте команду ls -a, чтобы убедиться, что папка .git была создана:

ls -a

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

Шаг 7: Добавление файлов и создание первого коммита

  1. Создайте новый файл или добавьте существующие файлы:
    echo "# My New Repository" > README.md
    
  2. Добавьте файл в индекс (стейджинг):
    git add README.md
    
  3. Создайте первый коммит:
    git commit -m "Initial commit"
    

Теперь у вас есть новый локальный репозиторий с первым коммитом!

Полезные команды

Теперь вы знаете, как создать новый локальный репозиторий в Git. Если у вас есть дополнительные вопросы, не стесняйтесь задавать!

4 - Как сделать push в другой репозиторий?

Шаг 1: Откройте терминал или командную строку

Откройте терминал (на Mac или Linux) или командную строку (на Windows).

Шаг 2: Перейдите в директорию вашего локального репозитория

Используйте команду cd, чтобы перейти в нужную директорию.

cd /путь/к/вашему/репозиторию

Шаг 3: Добавьте новый удалённый репозиторий

Используйте команду git remote add, чтобы добавить новый удалённый репозиторий.

git remote add <имя-удалённого-репозитория> <URL-удалённого-репозитория>

Замените <имя-удалённого-репозитория> на удобное вам имя (например, new-origin), а <URL-удалённого-репозитория> на URL нового удалённого репозитория.

Пример:

git remote add new-origin https://github.com/user/new-repository.git

Шаг 4: Проверьте, что новый удалённый репозиторий добавлен

Используйте команду git remote -v, чтобы убедиться, что новый удалённый репозиторий был добавлен.

git remote -v

Вы должны увидеть новый удалённый репозиторий в списке.

Шаг 5: Сделайте push в новый удалённый репозиторий

Используйте команду git push, чтобы сделать push в новый удалённый репозиторий.

git push <имя-удалённого-репозитория> <ветка>

Замените <имя-удалённого-репозитория> на имя, которое вы использовали в Шаге 3, и <ветка> на имя ветки, которую вы хотите отправить (например, main).

Пример:

git push new-origin main

Полезные команды

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

    git remote -v
    
  • Изменение URL удалённого репозитория:

    git remote set-url <имя-удалённого-репозитория> <новый-URL-удалённого-репозитория>
    
  • Удаление удалённого репозитория:

    git remote remove <имя-удалённого-репозитория>
    

Теперь вы знаете, как сделать push в другой репозиторий в Git! 😎

5 - Как удалить большие файлы из истории репозитория?

Шаг 1: Установите BFG Repo-Cleaner

Если у вас ещё не установлен BFG Repo-Cleaner, скачайте его с официального сайта и установите.

Шаг 2: Склонируйте репозиторий с полной историей

Склонируйте ваш репозиторий с полной историей в новый каталог.

git clone --mirror <URL-репозитория>

Пример:

git clone --mirror https://github.com/user/repository.git

Эта команда создаст каталог с именем repository.git, содержащий все данные вашего репозитория.

Шаг 3: Используйте BFG для удаления больших файлов

Запустите BFG Repo-Cleaner, чтобы удалить большие файлы. Укажите минимальный размер файла для удаления (например, 100M для файлов больше 100 МБ).

bfg --strip-blobs-bigger-than 100M repository.git

Шаг 4: Запустите git gc для очистки ненужных данных

Перейдите в директорию репозитория и выполните команду git gc для очистки ненужных данных и оптимизации репозитория.

cd repository.git
git reflog expire --expire=now --all && git gc --prune=now --aggressive

Шаг 5: Отправьте изменения обратно в удалённый репозиторий

Используйте команду git push с флагом --force для отправки изменений обратно в удалённый репозиторий.

git push --force --all
git push --force --tags

Полезные команды

Теперь вы знаете, как удалить большие файлы из истории репозитория в Git!

6 - Что означает флаг --mirror в git clone?

Флаг --mirror в команде git clone означает следующее:

  1. Полное клонирование репозитория: Флаг --mirror создает точную копию удаленного репозитория, включая все ветки, теги, рефспеки и конфигурации.

  2. Копирование всех ссылок: Все ссылки (refs) и конфигурационные данные клонируются. Это включает в себя не только стандартные ссылки (как в случае с --bare), но и все другие ссылки, такие как удаленные ветки и конфигурации.

  3. Отсутствие рабочей директории: Подобно --bare, репозиторий клонируется без рабочей директории, что означает, что он не содержит проверенных файлов и используется только для хранения данных репозитория.

  4. Идеально для зеркальных репозиториев: Это удобно для создания зеркал репозиториев, которые должны быть точными копиями оригинала, включая все метаданные и ссылки.

Пример использования

Когда вы используете git clone --mirror, результат будет таким:

git clone --mirror https://github.com/user/repository.git

Это создаст директорию repository.git, которая будет содержать точную копию удаленного репозитория. В отличие от обычного клонирования, где рабочая директория создается и инициализируется, --mirror клонирует только данные репозитория и метаданные.

Отличие от флага --bare

Хотя --bare также создает репозиторий без рабочей директории, разница между --bare и --mirror заключается в том, что --mirror также клонирует все ссылки и конфигурационные данные.

  • git clone --bare: Создает “голый” репозиторий без рабочей директории, копируя только стандартные ссылки и ветки.
  • git clone --mirror: Создает “зеркальный” репозиторий, копируя все ссылки и конфигурационные данные.

Таким образом, флаг --mirror используется для создания полной зеркальной копии репозитория, включая все ссылки и конфигурации.

7 - Как сделать полную копию (клон) Git репозитория?

Шаг 1: Откройте терминал или командную строку

Откройте терминал (на Mac или Linux) или командную строку (на Windows).

Шаг 2: Перейдите в директорию, где вы хотите создать клон репозитория

Используйте команду cd, чтобы перейти в нужную директорию.

cd /путь/к/директории

Например, если вы хотите создать клон в папке Projects в вашем домашнем каталоге, выполните:

cd ~/Projects

Шаг 3: Выполните команду клонирования

Используйте команду git clone, чтобы создать полный клон репозитория. Введите URL репозитория, который вы хотите клонировать.

git clone <URL-репозитория>

Пример:

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

Эта команда создаст директорию с именем repository, которая будет содержать полный клон указанного репозитория.

Шаг 4: Перейдите в директорию клонированного репозитория

Используйте команду cd, чтобы перейти в новую директорию с клоном репозитория.

cd repository

Шаг 5: Проверьте состояние клонированного репозитория

Используйте команду git status, чтобы убедиться, что репозиторий был успешно клонирован и находится в актуальном состоянии.

git status

Дополнительные шаги (при необходимости):

Если вы хотите сделать точную зеркальную копию репозитория, включая все ссылки и конфигурационные данные, используйте флаг --mirror.

Шаг 6: Выполните команду клонирования с флагом --mirror (опционально)

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

git clone --mirror <URL-репозитория>

Пример:

git clone --mirror https://github.com/user/repository.git

Эта команда создаст директорию repository.git, содержащую точную копию репозитория, включая все метаданные и ссылки.

Шаг 7: Проверьте состояние зеркальной копии (опционально)

Перейдите в директорию с зеркальной копией и убедитесь, что всё было клонировано правильно.

cd repository.git
git remote -v

Теперь у вас есть полная копия (клон) Git репозитория!