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 <имя новой ветки>
.
feature-<номер задачи если есть>-<заголовок задачи>
. Если ветка для исправлений, то fix-<номер задачи если есть>-<заголовок задачи>
.# Переключиться на ветку от которой надо наследоватся (обычно это основная ветка 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 <ветка>