diff --git a/README.md b/README.md index 577a074..2bd83d8 100644 --- a/README.md +++ b/README.md @@ -1 +1,52 @@ -# Work_remote \ No newline at end of file +# Work_remote +# Инструкция по работе с удаленным репозиторием. +Для того, чтобы внести вклад в какой-либо Git-проект, необходимо уметь работать с удалёнными репозиториями. **Удалённые репозитории** представляют собой версии вашего проекта, сохранённые в интернете или ещё где-то в сети. У вас может быть несколько удалённых репозиториев, каждый из которых может быть доступен для чтения или для чтения-записи. +## Добавление удаленного репозитория к существующему локальному. +`git remote add origin <ссылка на удаленный репозиторий>` - подключает удаленный репозиторий к вашему под переданным именем. + +`git remote -v` - просмотр адресов для чтения и записи, привязанные к репозиторию. +## Клонирование удаленного репозитория. +Если репозиторий открытый, то его можно склонировать. + +Команда `git clone <ссылка на удаленный репозиторий>` создаёт на вашем компьютере точную копию удаленного репозитория. +Пытается слить все ветки на локальный компьютер. +## Получение изменений из удаленного репозитория. +Команда `git pull` используется для извлечения и загрузки содержимого из удаленного репозитория на локальный и автоматически делает merge с нашей версией. +## Отправка изменений в удаленный репозиторий. +Команда `git push <имя удаленного репозитория> <имя ветки>` загружает изменения из локального репозитория в удаленный репозиторий. Например, `git push origin main` загрузит изменения с текущей ветки *main* в удаленный репозиторий *origin* +## Как настроить совместную работу Git Hub с локальным репозиторием. +1. Создать аакаунт на Git Hub. +2. Создать удаленный репозиторий на Git Hub (нажать "+" или кнопку "New"). +3. Вводим имя репозитория и описание, далее нужно выбрать, будет ли репозиторий открытым или закрытым, то есть доступным только вам и людям и нажимаем кнопку "Create repository". +4. Создаем локальный репозиторий. +5. Делаем привязку локального и удаленного репозитория командой `git remote add origin <ссылка на удаленный репозиторий>`. +6. Командой `git branch -M main` переименовываем ветку в локальном репозитории как в удаленном с "master" на "main" +7. Вносим изменения в локальном репозитории, фиксируем их. +8. Отправить **(push)** локальный репозиторий в удаленный, при этом может потребоваться аутентификация. +9. Обновим удаленный репозиторий, редактируем его, фиксируем изменения кнопкой "Commit changes". +10. Выкачиваем **(pull)** актуальное состояние из удаленного репозитория. +## Создание fork репозитория на GitHub. Pull reguest. +`pull reguest` - это запрос на вливание. +Команда для предложения изменений в чужой удаленный закрытый репозиторий. + +### **Как сделать `pull reguest` с командой клонирования:** ++ Делаем `fork` (ответвление) репозитория в свой аккаунт. Форки нужны, чтобы вносить свои изменения в проект, к репозиторию которого у вас нет прямого доступа. ++ Клонируем fork репозиторий к себе на компьютер командой `git clone <ссылка на удаленный репозиторий>` ++ Убеждаемся в что мы в папке с инициалиированным репозиторием, если нет, то переходим в нужную командой `cd <название папки>` ++ Создаем новую ветку и в нее вносим свои изменения ++ Фиксируем изменения ++ Отправляем свою версию (`git push`) в fork репозиторий. + + Нажимаем на кнопку `"Compare and pull request"` на подсказке GitHub, либо переходим на вкладку **Pull Requests** и нажимаем `New pull request`. + + Делаем описания наших изменений и нажимаем `Create pull request`. + + При использовании команды `git clone` теряется часть истории. + +### **Как сделать `pull reguest` без клонирования:** +* Делаем `fork` (ответвление) репозитория в свой аккаунт. +* Создаем пустой локальный репозиторий, инициализируем его. +* Связываем fork репозиторий с своим локальным - `git remote add origin <ссылка на удаленный репозиторий>`. +* Выкачиваем информацию из своего fork репозитория командой `git pull origin main`. +* Создаем новую ветку и в нее вносим свои изменения. +* Фиксируем изменения. +* Командой `git push` отправляем наши изменения в fork репозиторий. +* Делаем `pull reguest`. \ No newline at end of file