Гайд по Git
Дата последней правки:
Примечание: Раздел находится на стадии заполнения.
Основные команды в терминале (Windows)
- Выбор диска, например, диска D:
D:
- Перейти в папку выше:
cd..
- Перейти в папку:
cd название_папки
- Показать путь, где сейчас находится пользователь:
cd
- Посмотреть содержимое папки:
dir
- Очистить экран:
cls
Основные команды Git
Git — это распределённая система контроля версий, которая позволяет отслеживать изменения в коде и других файлах проекта во времени. Это инструмент, который хранит историю всех изменений в виде набора снимков (snapshot), где каждый коммит представляет собой снимок состояния проекта в определённый момент времени, содержащий информацию об изменениях, авторе и ссылку на предыдущий коммит (или коммиты).
✒️ Система контроля версий (VCS) — это программное решение для отслеживания изменений в файлах и папках проекта во времени. Она позволяет хранить историю всех изменений, определять, кто и когда внёс изменения, а также возвращаться к предыдущим версиям кода при необходимости.
✒️ Репозиторий — это место, где хранятся все файлы и изменения проекта.
✒️ Локальный репозиторий в Git — это копия проекта, которая размещена на компьютере.
✒️ Удалённый репозиторий в Git — это копия проекта, которая размещена на удалённом сервере (обычно в интернете).
Поэтапное добавление нового проекта в репозиторий на GitHub:
- Инициализируйте репозиторий:
git init
Команда создаёт локальный репозиторий на компьютере в той папке, в которой находится или будет находиться код.
- Добавьте все файлы проекта в индекс (stage) репозитория:
git add .
Место, где Git хранит информацию о файлах, готовых к коммиту, называется «индексом» Git (staging area).
Чтобы добавить определённый файл, например, index.html:
git add index.html
- Зафиксируйте изменения с комментарием:
git commit -m"Комментарий"
git commit -m"Комментарий"
запоминает версию (коммит) всех файлов в репозитории из индекса и присваивает ей уникальный хэш, по которому затем к этой версии можно вернуться.
✒️ Коммит (commit) — это снимок состояния файлов проекта на определённый момент времени.
✒️ Хэш в Git — это уникальный идентификатор длиной 40 символов, используемый для обозначения объектов в репозитории.
- Укажите имя пользователя, если это необходимо:
git config --global user.name "имя_пользователя"
- Укажите адрес электронной почты, если это необходимо:
git config --global user.email "электронная_почта"
config
читает или изменяет текущую конфигурацию Git на компьютере.
- Проверьте конфигурацию:
git config --list --global
Чтобы выйти из режима просмотра (пейджера), нажмите клавишу Q.
- Установите main главной веткой:
git branch -M main
- Свяжите локальный и удалённый репозитории:
git remote add origin <URL_репозитория>
Команда связывает локальный репозиторий с удалённым по указанному адресу.
- Отправьте изменения на сервер:
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
получает изменения с сервера и сохраняет их.
Чтобы подключить существующий локальный репозиторий к новому удалённому репозиторию (или изменить ссылку на текущий удалённый репозиторий), выполните следующие шаги:
- Посмотрите список текущих удалённых репозиториев:
git remote -v
- Удалите старую связь с origin (если она существует):
git remote remove origin
- Добавьте ссылку на новый удалённый репозиторий:
git remote add origin <URL_репозитория>
- Привяжите локальную ветку main на новом репозитории и отправьте все коммиты:
git push --set-upstream origin main
✒️ Форк (fork) — это операция, которая позволяет скопировать любой репозиторий на свой аккаунт в GitHub.
✒️ Пул-реквест (pull request) — это процесс отправки предложений изменений из вашего личного форка (или ветки в нём) в оригинальный (вышестоящий) репозиторий, от которого вы создали форк. Он позволяет авторам оригинального репозитория рассмотреть, обсудить и, при необходимости, принять ваши изменения.
Ветвление
✒️ Ветка — это независимая линия разработки, которая позволяет работать над новым функционалом или исправлением ошибок, не влияя на основную часть проекта.
Преимущество системы ветвления заключается в том, что разработчики могут работать над разными частями проекта независимо друг от друга, не мешая друг другу. Когда работа над функционалом завершена, изменения можно объединить обратно в основную ветку.
Чтобы создать новую ветку и опубликовать её в удалённом репозитории, нужно:
- Вывести список локальных веток:
git branch
- Создать новую ветку:
git branch <название_ветки>
Новая ветка создаётся на основе последнего коммита той ветки, в которой вы находились в момент создания.
- Переключиться на данную локальную ветку:
git switch <название_ветки>
- Опубликовать новую ветку в удалённом репозитории:
git push -u origin <название_ветки>
Чтобы получить все изменения, которые сделали другие участники в ветке main:
git pull origin main
pull
(пулл) объединяет две операции: загрузку изменений из удалённого репозитория и их немедленное применение к локальному репозиторию.
Слияние двух веток:
- Перейти на ветку, в которую будем вливать другую ветку:
git checkout <название_ветки>
- Выполнить слияние, указав название ветки, которую нужно влить:
git merge <название_ветки>
При необходимости можно удалить ветку из локального репозитория:
git branch -d <название_ветки>
git branch -d
удаляет ветку, только если она уже была полностью слита с текущей веткой — это безопасное удаление.