Основы работы с Git. Базовые команды
Ранее мы писали о том, как установить и настроить Git на Windows и Linux. В этой статье мы рассмотрим основные команды для работы с Git. Специалисты компании HyperHost ежедневно работают с репозиториями, поэтому инструкция без “воды” только нужная информация.
Поехали! Для большей наглядности команды будут представлены в том порядке в котором их нужно вводит в терминале начиная от создания нового локального репозитория до добавления изменений в удаленный репозиторий.
Схематически этот процесс можно представить так как на рисунку ниже.
- И так, начать нужно с создания нового репозитория (не забываем, что нужно создавать рабочую директорию и открывать Bash в том же месте, где находится папка Git), для этого вводим в терминале команду:
git init
После этого появляется скрытая папка .git. Нам в нее лазить и что-то делать не нужно, просто важный сам факт, что она появилась после ввода команды.
Для просмотра текущего состояния файлов и локального репозитория в целом, в терминале нужно ввести команду:
git status
На скрине показаны состояние файлов:
new file -это файлы, которые только что проиндексировали (под контролем Git),
deleted - это файлы, которые были удалены с локального репозитория,
modified -это файлы, которые были изменены, но их изменение еще не были зафиксированы,
untracked files -это файлы которые еще не проиндексированы (не под контролем Git).
2.Для добавления файлов под контроль Git нужно для начала проиндексировать файлы:
git add article.rtf
где article.rtf - файл, который хотим проиндексировать.
Если нужно добавить сразу все файлы репозитория в индекс используйте команду:
git add .
3.Для фиксации индексированных изменений:
git commit -m “Комментарий к коммиту”
Очень удобно если Вы хотите сразу и добавить файлы в индекс и зафиксировать изменения, то это можно сделать не 2-мя, а одной командой :
git commit -a -m “Комментарий к коммиту”
4.Дальше для работы с удаленным репозиторием нужно к нему подключиться командой:
git remote add test URL
где test - названия Вашего репозитория,
URL - URL-адрес Вашего репозитория.
Чтобы посмотреть список всех удаленных репозиториев воспользуйтесь командой:
git remote -v
Если Вы работаете в команде и хотите присоединиться к работе над уже существующим проектом, можно просто клонировать удаленный репозиторий себе командой:
git clone URL
5.Для заливки информации в удаленный репозиторий (например: GitHub, Bitbucket и т.д.) введите команду:
git push
Для совместной работы над проектом Вам нужно будет извлекать себе изменения и наработки других участников проекта.
Для большей наглядности мы в удаленному репозитории в файл t2.txt, в котором внутри находилось ‘mariachange’ изменили на ‘ mariachange2’
Для извлечения данных в свой репозиторий сначала используем команду:
git fetch
При этом идет соединение с удаленным репозиторием, забираются изменения, которых у нас еще нет на нашем локальном репозитории и сохраняет их в папке .git. Изменений пока нет в нашем рабочем каталоге.
Для того чтобы они появились нужно после git fetch ввести команду:
Открываем файл в локальном репозитории t2.txt и видим что изменения с удаленного репозитория в него добавились.
Чтобы посмотреть историю коммитов используйте команду:
git log
Для просмотра, что делалось в конкретном коммите вводим команду:
git show 6441b05a802163b77c9d6f39f4fed7c44d925893
где 6441b05a802163b77c9d6f39f4fed7c44d925893 - id коммита (смотрим по логам)
На скрине сделан вывод, что мы делали в коммите 6441b05a802163b77c9d6f39f4fed7c44d925893, для большей наглядности взят последний коммит, где в файле t2.txt к содержимому ‘mariachange’ была добавлена цифра 2.
Чтобы посмотреть какие изменения была внесены у файл, но еще не добавлены в коммит можно ввести команду:
git diff
Удалить файл с репозитория:
git rm photo1.png
где photo1.png - файл который хотите удалить.
Также, удобно в работе с командой над общим проектом выделять разные ветки, а потом сливать наработки разных частей проекта в одну ветку.
Создать ветку можно командой:
git branch test
где test -название ветки
Просмотр всех веток:
git branch -v
Зеленым цветом выделяется ветка, на который мы сейчас работаем.
Чтобы переключится с одной ветки на другую:
git checkout test
Переключение с ветки master на test.
Для удаление ветки (локально):
git branch -d article
где article -название ветки.
Чтобы удалить ветку на удаленном сервере:
git push origin :test
где origin - название удалённого репозитория
test - название ветки.
Слияние веток выполняется командой:
git merge test
Слияние текущей ветки с веткой test.
Далее разберем как сделать откат файла до определенного состояния. В качестве примера используем файл t2.txt в котором находится содержимое ‘mariachange2’ (состояние при коммите 6441b05a802163b77c9d6f39f4fed7c44d925893)добавляем содержимое ‘откат файла до определенного состояния’ и делаем коммит с комментарием ‘2’, также добавляем слово ‘коммит’ и также фиксируем изменения с комментарием ‘3’. Все эти изменения заливаем в удаленный репозиторий.
Для того чтобы вернуть файл в определенное состояния можно воспользоваться командой:
git checkout 6441b05a802163b77c9d6f39f4fed7c44d925893 t2.txt
где 6441b05a802163b77c9d6f39f4fed7c44d925893 - id коммита
t2.txt - файл в котором делается откат.
Как видим файл вернулся в состояние в котором был при коммите 6441b05a802163b77c9d6f39f4fed7c44d925893.
Команда ГиперХост желает продуктивной и приятной работы с Git.