Разбираемся с GIT

Разбираемся с GIT

Git – это распределенная система управления версиями.

Для начала установим GIT

Первоначальные настройки

git config --list

Выводит список всех настроек.

Для начала зададим имя:

git config --global user.name "Dmitriy"

И зададим e-mail в глобальную настройку:

git config --global user.email "ip@polyakovdmitriy.ru"

Параметры установки окончаний строк:

Для предотвращения проблем, при работе на разных операционных системах.

для unix/mac:

git config --global core.autocrlf input
git config --global core.safecrlf warn

для виндовс:

git config --global core.autocrlf true
git config --global core.safecrlf warn

Установка отображения unicode

git config --global core.quotepath off

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

Для создания репозитория, нужно из папки проекта, набрать команду:

git init

Для добавления файлов в репозиторий:

git add index.html
git commit -m "create file"

Проверка состояния репозитория

git status

После внесения изменений в файл, например index.html

Можно или проиндексировать их командой

git add index.html

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

git checkout --index.html

После индексации изменений, можно:

Снять индексацию изменений, командой:

git reset HEAD index.html

Командой commit – можно закомитить все проиндексированные изменения.

Для индексации всех изменений в каталоге и подкаталогах, можно использовать команду

git add .

Просмотр истории

git log

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

git log --pretty=format:"%h %ad | %s%d [%an]" --graph --date=short

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

git config --global alias.hist "log --pretty=format:'%h %ad | %s%d [%an]' --graph --date=short"

Получение старых версий

Для получения старой версии, нужно ввести команду:

git checkout <hash>

В качестве hash, используется версия, которая выводится при git config, достаточно использовать первые 7 знаков хэш-кода.

Для возврата к последней версии в ветке master, используется команда

git checkout master

Создаем теги версий

git tag v1

После этого можно использовать при откатывании название тега, вместо хэша:

git checkout v1

Для откатывания на предыдущую версию, которая перед тегом v1, можно использовать такую команду:

git checkout v1~1

Для того чтобы сделать коммит, который отменит предыдущий, можно набрать команду:

git revert HEAD --no-edit

Сброс коммитов до определенного:

git reset --hard v1

Изменение предыдущего коммита:

git commit --amend -m "Add fishka"

Создаем ветку

git branch <имяветки>

Переключаемся на созданную ветку

git checkout <имяветки>

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

git merge master

Перебазирование

git rebase master

Лучше не использовать перебазирование, если ветка является публичной или расшаренной.

Клонирование репозиториев

git clone hello cloned_hello

Посмотреть ветки

git branch

Или все ветки

git branch -a

Извлечение изменений в клонированном репозитории

git fetch

Слияние извлеченных изменений

git merge origin/master

Или для слияния можно использовать

git pull

что эквивалентно:

git fetch
git merge origin/master

Добавление ветки наблюдения

git branch --track styles origin/styles

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

git clone --bare hello hello.git

Добавление удаленного репозитория

git remote add shared ../hello.git

Отправка изменений в удаленный репозиторий

git push shared master

Извлечение общих изменений

git remote add shared ../hello.git
git branch --track shared master
git pull shared master

Далее запускаем git сервер и можно использовать совместно.