Автор: Рубрики: Инструкции Просмотрено: 227
Основы работы с Git. Базовые команды
08Июл2019

Ранее мы писали о том, как установить и настроить Git на Windows и Linux. В этой статье мы рассмотрим основные команды для работы с Git.  Специалисты компании HyperHost ежедневно работают с репозиториями, поэтому инструкция без “воды” только нужная информация.

Поехали! Для большей наглядности команды будут представлены в том порядке в котором их нужно вводит в терминале начиная от создания нового локального репозитория до добавления изменений в удаленный репозиторий. 

Схематически этот процесс можно представить так как на рисунку ниже.

2-min

 

  1.  И так, начать нужно с создания нового репозитория (не забываем, что нужно создавать рабочую директорию и открывать Bash в том же месте, где находится папка Git), для этого вводим в терминале команду:

git init

После этого появляется скрытая папка .git. Нам в нее лазить и что-то делать не нужно, просто важный сам факт, что она появилась после ввода команды.

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

git status

1

На скрине показаны состояние файлов:

new file это файлы, которые только что проиндексировали (под контролем Git),

deleted это файлы, которые были удалены с локального репозитория, 

modified это файлы, которые были изменены, но их изменение еще не были зафиксированы,

untracked files это файлы которые еще не проиндексированы (не под контролем Git).

 

2.Для добавления файлов под контроль Git нужно для начала  проиндексировать файлы:

 git add article.rtf

где article.rtf – файл, который хотим проиндексировать.

 

Если нужно добавить сразу все файлы репозитория в индекс используйте команду: 

 git add .

3.Для фиксации индексированных изменений:

git commit -m “Комментарий к коммиту”

add3

Очень удобно если Вы хотите сразу и добавить файлы в индекс и зафиксировать изменения, то это можно сделать не 2-мя, а одной командой :

git commit -a -m “Комментарий к коммиту”

add4-min

4.Дальше для работы с удаленным репозиторием нужно к нему подключиться командой:

  git remote add test URL

где test – названия Вашего репозитория, 

URL – URL-адрес Вашего репозитория.

remote5-min

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

git remote -v

re6-min

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

git clone URL

5.Для заливки информации в удаленный репозиторий (например: GitHub, Bitbucket и т.д.) введите команду:

 git push

cl7-min

Для совместной работы над проектом Вам нужно будет извлекать себе изменения и наработки других участников проекта.

Для большей наглядности мы в удаленному репозитории в файл t2.txt, в котором внутри находилось ‘mariachange’ изменили на ‘ mariachange2’

fetch8-min

fetch9-min

 

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

 git fetch

fe10-min

При этом идет соединение с удаленным репозиторием, забираются изменения, которых у нас еще нет на нашем локальном репозитории и сохраняет их в папке .git. Изменений пока нет в нашем рабочем каталоге.

Для того чтобы  они появились нужно после  git fetch ввести команду:

pull

Открываем файл в локальном репозитории t2.txt и видим что изменения с удаленного репозитория в него добавились.

pull12-min

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

git log

logs

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

git show 6441b05a802163b77c9d6f39f4fed7c44d925893

 где 6441b05a802163b77c9d6f39f4fed7c44d925893id коммита (смотрим по логам)

На скрине сделан вывод, что мы делали в коммите 6441b05a802163b77c9d6f39f4fed7c44d925893, для большей наглядности взят последний коммит, где  в файле t2.txt к содержимому ‘mariachange’ была добавлена цифра 2.

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

git diff

Удалить файл с репозитория:

git rm photo1.png

где photo1.png файл который хотите удалить.

rm

Также, удобно в работе с командой над общим проектом выделять разные ветки, а потом сливать наработки разных частей проекта в одну ветку.

Создать ветку можно командой:

git branch test

где test название ветки

Просмотр всех веток:

git branch -v

Зеленым цветом выделяется ветка, на который мы сейчас работаем.

branch

Чтобы  переключится с одной ветки на другую:

 git checkout test

Переключение с ветки master на test.

br

Для удаление ветки (локально):

git branch -d article

где article название ветки.

 

Чтобы удалить ветку на удаленном сервере:

git push origin :test

где origin название удалённого репозитория

test название ветки.

Слияние веток выполняется командой:

git merge test

Слияние текущей ветки с веткой test.

Далее разберем как сделать откат файла до определенного состояния. В качестве примера используем файл t2.txt в котором находится содержимое ‘mariachange2’ (состояние при коммите 6441b05a802163b77c9d6f39f4fed7c44d925893)добавляем содержимое ‘откат файла до определенного состояния’ и делаем коммит с комментарием ‘2’, также добавляем слово ‘коммит’ и также фиксируем изменения с комментарием ‘3’. Все эти изменения заливаем в удаленный репозиторий.

checkout20-min

checkout21-min

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

git checkout 6441b05a802163b77c9d6f39f4fed7c44d925893 t2.txt

где 6441b05a802163b77c9d6f39f4fed7c44d925893 – id коммита

t2.txt – файл в котором делается откат.

checkout

Как видим файл вернулся в состояние в котором был при коммите 6441b05a802163b77c9d6f39f4fed7c44d925893.

ck23-min

Команда ГиперХост  желает продуктивной и приятной работы с Git.

228 раз(а) 2 Сегодня просмотрено раз(а)
  • Семён Семёныч

    Не знаю, что есть гит, но статья однозначно полезная. Единственное понятное мне слово, что я здесь уловил – это репозиторий. Автор, если вам не сложно, напишите пожалуйста воодную статью, поясняющую новичкам, что такое вообще гит.