Гайд по Git

Дата последней правки:

Примечание: Раздел находится на стадии заполнения.

Основные команды в терминале (Windows)

D:
cd..
cd название_папки
cd
dir
cls

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

Git — это распределённая система контроля версий, которая позволяет отслеживать изменения в коде и других файлах проекта во времени. Это инструмент, который хранит историю всех изменений в виде набора снимков (snapshot), где каждый коммит представляет собой снимок состояния проекта в определённый момент времени, содержащий информацию об изменениях, авторе и ссылку на предыдущий коммит (или коммиты).

✒️ Система контроля версий (VCS) — это программное решение для отслеживания изменений в файлах и папках проекта во времени. Она позволяет хранить историю всех изменений, определять, кто и когда внёс изменения, а также возвращаться к предыдущим версиям кода при необходимости.

✒️ Репозиторий — это место, где хранятся все файлы и изменения проекта.

✒️ Локальный репозиторий в Git — это копия проекта, которая размещена на компьютере.

✒️ Удалённый репозиторий в Git — это копия проекта, которая размещена на удалённом сервере (обычно в интернете).

Репозитории в Git
Репозитории в Git

Поэтапное добавление нового проекта в репозиторий на GitHub:

  1. Инициализируйте репозиторий:
git init

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

  1. Добавьте все файлы проекта в индекс (stage) репозитория:
git add .

Место, где Git хранит информацию о файлах, готовых к коммиту, называется «индексом» Git (staging area).

Чтобы добавить определённый файл, например, index.html:

git add index.html
  1. Зафиксируйте изменения с комментарием:
git commit -m"Комментарий"

git commit -m"Комментарий" запоминает версию (коммит) всех файлов в репозитории из индекса и присваивает ей уникальный хэш, по которому затем к этой версии можно вернуться.

✒️ Коммит (commit) — это снимок состояния файлов проекта на определённый момент времени.

✒️ Хэш в Git — это уникальный идентификатор длиной 40 символов, используемый для обозначения объектов в репозитории.

  1. Укажите имя пользователя, если это необходимо:
git config --global user.name "имя_пользователя"
  1. Укажите адрес электронной почты, если это необходимо:
git config --global user.email "электронная_почта"

config читает или изменяет текущую конфигурацию Git на компьютере.

  1. Проверьте конфигурацию:
git config --list --global

Чтобы выйти из режима просмотра (пейджера), нажмите клавишу Q.

  1. Установите main главной веткой:
git branch -M main
  1. Свяжите локальный и удалённый репозитории:
git remote add origin <URL_репозитория>

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

  1. Отправьте изменения на сервер:
git push -u origin main

В Git есть три уровня конфигурации: системный (--system), глобальный (--global) и локальный (--local).

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

git add .
git commit -m"Комментарий"
git push

push (пуш) используется для отправки изменений из локального репозитория в удалённый.

Чтобы отменить коммит, можно использовать следующую команду:

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

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

Чтобы проигнорировать часть файлов при отправке в удалённый репозиторий, используется файл .gitignore. Необходимо создать или отредактировать файл .gitignore и добавить туда пути к файлам, которые нужно исключить.

Показать текущее состояние рабочего каталога и индекса, включая изменённые, проиндексированные и неотслеживаемые файлы:

git status

Также для git status существует краткая форма записи:

git status --short

Показать историю всех коммитов в текущей ветке с их хешами и сообщениями:

git log

Скачать все файлы из удалённого репозитория на компьютер:

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

clone создаёт полную копию репозитория со всей историей, ветками и настройками удалённого репозитория.

Скачать все файлы из удалённого репозитория в определённую папку (например, Project):

git clone <URL_репозитория> Project

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

git diff

Чтобы показать изменения в коде конкретного файла:

git diff <имя_файла>

Восстановить исходное состояние файла:

git restore <имя_файла>

restore — сбрасывает изменения в файле до состояния индекса или последнего коммита.

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

git remote set-url origin <URL_репозитория>
git fetch

fetch получает изменения с сервера и сохраняет их.

Чтобы подключить существующий локальный репозиторий к новому удалённому репозиторию (или изменить ссылку на текущий удалённый репозиторий), выполните следующие шаги:

  1. Посмотрите список текущих удалённых репозиториев:
git remote -v
  1. Удалите старую связь с origin (если она существует):
git remote remove origin
  1. Добавьте ссылку на новый удалённый репозиторий:
git remote add origin <URL_репозитория>
  1. Привяжите локальную ветку main на новом репозитории и отправьте все коммиты:
git push --set-upstream origin main

✒️ Форк (fork) — это операция, которая позволяет скопировать любой репозиторий на свой аккаунт в GitHub.

✒️ Пул-реквест (pull request) — это процесс отправки предложений изменений из вашего личного форка (или ветки в нём) в оригинальный (вышестоящий) репозиторий, от которого вы создали форк. Он позволяет авторам оригинального репозитория рассмотреть, обсудить и, при необходимости, принять ваши изменения.


Ветвление

✒️ Ветка — это независимая линия разработки, которая позволяет работать над новым функционалом или исправлением ошибок, не влияя на основную часть проекта.

Преимущество системы ветвления заключается в том, что разработчики могут работать над разными частями проекта независимо друг от друга, не мешая друг другу. Когда работа над функционалом завершена, изменения можно объединить обратно в основную ветку.

Чтобы создать новую ветку и опубликовать её в удалённом репозитории, нужно:

  1. Вывести список локальных веток:
git branch
  1. Создать новую ветку:
git branch <название_ветки>

Новая ветка создаётся на основе последнего коммита той ветки, в которой вы находились в момент создания.

  1. Переключиться на данную локальную ветку:
git switch <название_ветки>
  1. Опубликовать новую ветку в удалённом репозитории:
git push -u origin <название_ветки>

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

git pull origin main

pull (пулл) объединяет две операции: загрузку изменений из удалённого репозитория и их немедленное применение к локальному репозиторию.

Слияние двух веток:

  1. Перейти на ветку, в которую будем вливать другую ветку:
git checkout <название_ветки>
  1. Выполнить слияние, указав название ветки, которую нужно влить:
git merge <название_ветки>

При необходимости можно удалить ветку из локального репозитория:

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

git branch -d удаляет ветку, только если она уже была полностью слита с текущей веткой — это безопасное удаление.

Наверх