diff --git a/README.md b/README.md index efd9d96..fb1e380 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,23 @@ # Work_remote -Скоро я стану, как Илон Маск... \ No newline at end of file +Скоро я стану, как Илон Маск... + +# **Основы Git - Работа с удалёнными репозиториями** +Для того, чтобы внести вклад в какой-либо Git-проект, нам необходимо уметь работать с удалёнными репозиториями. Удалённые репозитории представляют собой версии нашего проекта, сохранённые в интернете или ещё где-то в сети. У нас может быть несколько удалённых репозиториев, каждый из которых может быть доступен для чтения или для чтения-записи. Взаимодействие с другими пользователями предполагает управление удалёнными репозиториями, а также отправку и получение данных из них. Управление репозиториями включает в себя как умение добавлять новые, так и умение удалять устаревшие репозитории, а также умение управлять различными удалёнными ветками, объявлять их отслеживаемыми или нет и так далее. В данном разделе мы рассмотрим некоторые из этих навыков. + +## **Просмотр удалённых репозиториев** +Для того, чтобы просмотреть список настроенных удалённых репозиториев, мы можем запустить команду: *`git remote`*. Она выведет названия доступных удалённых репозиториев. Если мы клонировали репозиторий, то увидим как минимум **origin** — имя по умолчанию, которое Git даёт серверу, с которого производилось клонирование. + +Мы можем также указать ключ `-v`, чтобы просмотреть адреса для чтения и записи, привязанные к репозиторию. +Если у нас больше одного удалённого репозитория, команда выведет их все. + +## **Команды `git clone` и `git pull`** +Если ветка настроена на отслеживание удалённой ветки, то мы можем использовать команду "`git pull`", чтобы автоматически получить изменения из удалённой ветки и слить их со своей текущей. + +Команда "`git clone`" автоматически добавляет удалённый репозиторий под именем «origin». По умолчанию команда "`git clone`" автоматически настраивает нашу локальную ветку **master** на отслеживание удалённой ветки **master** на сервере, с которого мы клонировали репозиторий. Название веток может быть другим и зависит от ветки по умолчанию на сервере. Выполнение "`git pull`", как правило, извлекает данные с сервера, с которого мы изначально клонируем, и автоматически пытается слить **(`merge`)** их с кодом, над которым мы в данный момент работаем. + +## **Отправка изменений в удалённый репозиторий (`git push`)** +Когда мы хотим поделиться своими наработками, нам необходимо отправить их в удалённый репозиторий. Команда для этого действия простая: `git push `. Чтобы отправить нашу ветку **master** на сервер **origin** (клонирование обычно настраивает оба этих имени автоматически), мы можем выполнить следующую команду для отправки наших коммитов: + +`$ git push origin master` + +Эта команда срабатывает только в случае, если мы клонировали с сервера, на котором у нас есть права на запись, и если никто другой с тех пор не выполнял команду `git push`. Если мы и кто-то ещё одновременно клонирует, затем он выполняет команду `git push`, а после него выполнить команду `git push` попытаемся мы, то наш **push** точно будет отклонён. Нам придётся сначала получить изменения и объединить их с нашими и только после этого нам будет позволено выполнить **push**. \ No newline at end of file