diff --git a/README.md b/README.md index efd9d96..900b9ef 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,88 @@ -# Work_remote -Скоро я стану, как Илон Маск... \ No newline at end of file +# Как начать пользоваться Git +___ +[1. Что такое Git](#ЧтотакоеGit) +[2. Настройка Git](#НастройкаGit) +[3. Создание нового репозитория](#Созданиеновогорепозитория) +[4. Работа с изменениями](#Работасизменениями) +[5. Работа с ветками](#Работасветками) +[6. Удаленные репозитории](#Удаленныерепозитории) +___ + +## Что такое Git + ++ `Git` — это распределенная система управления версиями, то есть локальный клон проекта — это полный репозиторий управления версиями. Полнофункциональные локальные репозитории упрощают работу как в автономном, так и в удаленном режиме. Разработчики фиксируют свою работу локально, а затем синхронизируют свою копию репозитория с копией на сервере. + + ++ `Для чего он нужен?` Ну во-первых, чтобы отследить изменения, произошедшие с проектом, со временем. Проще говоря, мы можем посмотреть как менялись файлы программы, на всех этапах разработки и при необходимости вернуться назад и что-то отредактировать +Во-вторых он чрезвычайно полезен при одновременной работе нескольких специалистов, над одним проектом +___ + +## Настройка Git +*Работа с любой программой всегда начинается с её настройки. Git можно настроить один раз и менять что-то только по мере необходимости* ++ Указать имя пользователя: `git config --global user.name "Ivan Ivanov"` **Задаёт имя пользователя, от которого будут идти коммиты. Вместо Ivan Ivanov нужно написать свои данные на латинице. Если имя состоит из одного слова, кавычки можно не ставить** ++ Указать электронную почту: `git config --global user.email "mail@gmail.com"`. **Вместо** `mail@gmail.com` **нужно указать вашу почту**. +___ + +## Создание нового репозитория +*git хранит свои файлы и историю прямо в папке проекта. Чтобы создать новый репозиторий, нам нужно открыть терминал, зайти в папку нашего проекта и выполнить команду* `git init`. *Это включит приложение в этой конкретной папке и создаст скрытую директорию .git, где будет храниться история репозитория и настройки*. ++ Определение состояния: Вводим команду `git status` что бы проверить состояние нашего репозитория. Скорее всего вам *Git* напишет что данный файл неотслеживаемый.Это значит, что файл новый и система еще не знает, нужно ли следить за изменениями в файле или его можно просто игнорировать. Для того, чтобы начать отслеживать новый файл, нужно его специальным образом объявить. ++ Подготовка файлов: Что бы объявить наш новый файл используем команду `Git add` и вводим имя нашего файла, **что бы упростить и ускорить работу можно ввести первую или пару букв и нажать клавишу** TAB + + + Проверим статус снова, на этот раз мы должны получить другой ответ. + + Файл готов к коммиту. Сообщение о состоянии также говорит нам о том, какие изменения относительно файла были проведены в области подготовки — в данном случае это новый файл. +___ + +## Работа с изменениями +*Представим, что нам нужно добавить пару новых блоков в наш файл. После выполнения данной операции мы должны обозначить эти файлы для Гита, при помощи команды `git add`, добавляющей (или подготавливающей) их к коммиту* ++ После того как мы обозначили,теперь создадим непосредственно сам коммит + + Используем команду git commit с флагом (он обозначается как `-` и Английской буквой m) в совокупности у нас получиться вот так `git commit -m` . После букву `m` мы пишем в текст "Наш комантарий". **обязательно в двойном штрихе** `""` + ++ Как посмотреть коммиты + + Для просмотра все выполненных фиксаций можно воспользоваться историей коммитов. Она содержит сведения о каждом проведенном коммите проекта. Запросить ее можно при помощи команды: `git log` + + + В ней содержится вся информация о каждом отдельном коммите, с указанием его хэша, автора, списка изменений и даты, когда они были сделаны. Отследить интересующие вас операции в списке изменений, можно по хэшу коммита, при помощи команды: `git checkout`. Сам хэш выглядит вот так `1iu23iu3b4iygu4ib23i4uyiyg4i5i`. + + + Но можно вписать первых пять или более символов и нам покажет нужный коммит. Например `git checkout 1iu23`. +___ + +## Работа с ветками +*Во время разработки новой функциональности считается хорошей практикой работать с копией оригинального проекта, которую называют веткой. Ветви имеют свою собственную историю и изолированные друг от друга изменения до тех пор, пока вы не решаете слить изменения вместе. Это происходит по набору причин*: ++ Уже рабочая, стабильная версия кода сохраняется + ++ Различные новые функции могут разрабатываться параллельно разными программистами. + ++ Разработчики могут работать с собственными ветками без риска, что кодовая база поменяется из-за чужих изменений. + ++ В случае сомнений, различные реализации одной и той же идеи могут быть разработаны в разных ветках и затем сравниваться. + + 1.**Создание новой ветки** + + Основная ветка в каждом репозитории называется master. Чтобы создать еще одну ветку, используем команду `git branch` и задайте этой ветки имя, например: `git branch draft` + *Поздравляю мы создали новую ветку, пока что точную копию ветки master* + 2. **Переключение между ветками** + Сейчас, если мы введем команду `git branch`и мы увидим две доступные опции: + draft + *master + +Там где стоит звездочка `*` это обозначение того в какой ветки мы находимся на данный момент. ++ Но мы хотим работать с нашей `новой веткой`, так что нам понадобится переключиться на другую ветку. Для этого воспользуемся командой `git checkout` и имя нашей ветки. В нашем случае будет `git checkout draft`. И после этого можем опять написать `git branch` и заметить что `*` переместилась на draft ++ Теперь мы например написали какую нибудь инструкцию сохранили и закоммители после чего возращаемся в нашу главную ветку master. Возвращаемся точно таким же образом как переходили в другую ветку `git checkout master` ++ Мы видем что в ветки master ничего из того что мы написали нету, теперь нам нужно объединить информацию из новой ветки в ветку master. Используем для этого команду `git merge`. **Внимательно, объединять только тогда когда мы находимся в главной ветки** ++ Когда мы использовали команду `git merge draft` все что было в draft перенеслось и теперь эта ветка нам большь не нужна и ее можно спокойно удалить при помощи команды `git branch -d draft`. +___ + +## Удаленные репозитории +1. **Что такое удаленный репозиторий** ++ *Сейчас наш коммит является локальным — существует только в директории .git на нашей файловой системе. Несмотря на то, что сам по себе локальный репозиторий полезен, в большинстве случаев мы хотим поделиться нашей работой или доставить код на сервер, где он будет выполняться* +*Клонирование - это когда вы копируете удаленный репозиторий к себе на локальный ПК.Это то, с чего обычно начинается любой проект. При этом вы переносите себе все файлы и папки проекта, а также всю его историю с момента его создания. Чтобы склонировать проект, сперва, необходимо узнать где он расположен и скопировать ссылку на него. В нашем руководстве мы будем использовать адрес* +https://github.com/tutorialzine/awesome-project. ++ Что бы скопировать чей то проект нужно создать для этого папку и в терминале написать команду `Git clone`. +`git clone https://github.com/tutorialzine/awesome-project new-folder` +2. **Подключение к удаленному репозиторию** ++ Чтобы загрузить что-нибудь в удаленный репозиторий, сначала нужно к нему подключиться,Чтобы связать наш локальный репозиторий с репозиторием на GitHub, выполним следующую команду в терминале +`git remote add origin https://github.com/tutorialzine/awesome-project.git` +3. **Отправка изменений на сервер** ++ Сейчас самое время переслать наш локальный коммит на сервер. Этот процесс происходит каждый раз, когда мы хотим обновить данные в удаленном репозитории. +Команда, предназначенная для этого - push. Она принимает два параметра: имя удаленного репозитория (мы назвали наш origin) и ветку, в которую необходимо внести изменения (master — это ветка по умолчанию для всех репозиториев) +Тоесть `git push origin master` + +___ \ No newline at end of file