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

Git (не путать с github) - это набор консольных утилит, которые отслеживают и фиксируют изменения в файлах. С его помощью можно откатиться на более старую версию проекта, сравнивать, анализировать, сливать изменения и многое другое. Этот процесс называется контролем версий.

Git является распределенным, то есть не зависит от одного центрального сервера, на котором хранятся файлы. Вместо этого он работает полностью локально, сохраняя данные в папках на жестком диске, которые называются репозиторием. Тем не менее, можно хранить копию репозитория онлайн, это сильно облегчает работу над одним проектом для нескольких людей.

GitHub - это один из популярных хостингов git-репозиториев.

Основные команды для работы с git

Для работы с git можно использовать GUI-приложения (в т.ч. интерфейсы для работы с git в Visual Studio и WebStorm), но в большинстве случаев, с git работают из консоли (эмулятор терминала).

Рекомендуется изначально привыкать работать с git из консоли. Более того, графические интерфейсы не покрывают всю функциональность git, предоставляя только наиболее часто используемый функционал.

Клонирование существующего репозитория

Для получения копии существующего Git-репозитория, например, проекта, в который надо внести изменения, необходимо использовать команду git clone.

# Клонирование репозитория осуществляется командой git clone [URL].
git clone https://github.com/Flexberry/ember-flexberry.git

Ветвление

Ветвление используется для одновременной и независимой разработки. Основной веткой является master или develop. Другие ветки — это исправления и изменения которые еще не добавлены в основную ветку.

Для переключения между ветками, необходимо использовать команду git checkout <имя ветки>.

Сделать новую ветку и переключится сразу на нее, можно выполнив команду git checkout -b <имя новой ветки>.

# Переключиться на ветку от которой надо наследоватся (обычно это основная ветка master или develop)
git checkout develop

# Получить последнии изменения для текущей ветки.
git pull

# Создать новую ветку.
git checkout -b <имя новой ветки>

Слить ветку в текущую, можно командой: git merge <ветка>.

Запись изменений в репозииторий

Область подготовленных изменений (staging area) - область куда попадают изменения(файлы), которые надо включить в коммит.

Добавить изменения в staging area - git add <имя файла> или git add * если надо включить все изменения.

Удалить изменения из staging area - git checkout -- <имя файла> или git checkout -- * если надо удалить все изменения.

Просмотреть содержимое рабочей директории и staging area - git status

Зафиксировать(сохранить) подготовленные изменения в локальном репозитории - git commit -m "Комментарий к коммиту"

Работа с удаленным репозиторием

Удаленный репозиторий – репозиторий, который считается общим (расположен на github), в него передаются коммиты из локального репозитория, чтобы остальные программисты могли их увидеть. Удаленных репозиториев может быть несколько, но обычно он бывает один.

Получить последние изменения, сделанные в ветке, с удаленного репозитория - git pull

Отправить зафиксированные изменения из локального репозитория в удаленный - git push origin <ветка>

Полезные ссылки