Этот документ предназначен для ознакомления с основными командами Git, которые помогут вам управлять версиями вашего кода и работать с репозиториями.
Предполагается, что Git установлен и настроен в вашей системе.
Git имеет возможность настройки своих параметров для различных областей видимости. К этим параметрам относятся: имя пользователя, почта, редактор по-умолчанию и другие.
Существует три области и соответственно для каждой области есть свой .gitconfig
(конфигурационный файл):
- System. Файл хранится в папке, где установлен Git (
<path-to-git>\Git\etc
, файлgitconfig
). Настройки из этого файла применяются для всех репозиториев. - Global. Файл хранится в папке пользователя (как правило в
C:\Users\<user-name>
, файл.gitconfig
). Настройки из этого файла применяются для всех репозиториев, перекрывая настройки системного конфига. - Local. Файл хранится в скрытой папке репозитория (
.git
, файлconfig
). Настройки из этого файла применяются только для текущего репозитория, перекрывая настройки системного и глобального конфигов.
Чтобы посмотреть настройки параметров (и откуда они взяты) репозитория выполните команду:
git config --list --show-origin
Чтобы посмотреть настройки параметров (и область этих параметров) репозитория выполните команду:
git config --list --show-scope
В Git есть три ключевых компонента:
- Локальный репозиторий
- Индекс
- Удаленный репозиторий
Локальный репозиторий — это копия проекта, которая хранится на вашем компьютере. Он включает в себя все файлы проекта, а также историю изменений (коммиты). Когда вы создаете новый проект с помощью команды git init
или клонируете существующий репозиторий с помощью git clone
, вы создаете локальный репозиторий.
Индекс — это промежуточный слой между рабочей директорией и локальным репозиторием. Он используется для подготовки изменений перед их коммитом.Когда вы выполняете команду git add
, изменения добавляются в индекс. Индекс позволяет выбрать, какие изменения закоммитить. Вы можете добавлять изменения по частям, что позволяет создавать более логичные и понятные коммиты.
Удаленный репозиторий — это версия проекта, которая хранится на сервере или в облаке (например, на GitHub). Удаленные репозитории позволяют нескольким разработчикам работать над одним проектом. Изменения могут быть отправлены в удаленный репозиторий командой git push
и получены из него командой git pull
.
Чтобы начать работу с Git необходимо инициализировать папку (сказать Git, что изменения в этой папке надо отслеживать) будущего проекта:
git init <folder-name>
Если ваш проект уже создан на одном из сервисов Git, например GitHub, то папку не нужно инициализировать, её следует склонировать. Для этого выполните команду:
git clone https://github.com/<user-name>/<folder-name>.git
После того как папка (репозиторий) проекта создана, заходим в неё:
cd <folder-name>
Далее работаем с папкой как того требует проект. Например, добавим файл script.txt
и напишем в нем что-нибудь:
<folder-name>/
|
├── .git/
└── script.txt
Посмотрим, изменения в нашей папке командой:
git status
Видим, что файл script.txt
не отслеживается (то есть он не добавлен в индекс). Чтобы добавить файл для отслеживания выполним команду:
git add script.txt
Для добавления всех файлов можно использовать команду:
git add .
Снова посмотрим на измененния в папке. Теперь Git увидел новый файл (значит файл добавлен в индекс). Теперь необходимо создать коммит и добавить к нему описание, чтобы зафиксировать изменения в папке:
git commit -m "commit-massege"
Теперь изменения в папке зафиксированны. Историю коммитов можно просмотреть командой:
git log
Отмена последнего коммита и сохранение изменений:
git reset HEAD~1
Эта команда переместит указатель HEAD
на один коммит назад, но изменения останутся в вашем рабочем каталоге, и вы сможете их отредактировать или закоммитить снова.
Отмена последнего коммита и удаление изменений:
git reset --hard HEAD~1
После внесения изменений в историю предыдущих коммитов, Git не даст просто так все синхронизировать. Необходимо отправить текущие измемения в удаленный репозиторий принудительно:
git push --force
Создание новой ветки:
git checkout -b <branch_name>
Переключиться на ветку:
git checkout <branch_name>
Посмотреть существующие ветки (звездочкой отмечена текущая ветка):
git branch
Possibly Errors
[email protected]
Dmitri Posvyashenyi
If you need further modifications or additional information, feel free to ask!