From 520a4c071eacd39bb8919fc17b64c77e33329f16 Mon Sep 17 00:00:00 2001 From: Mikhail Bovshin Date: Thu, 1 Dec 2022 20:27:09 +0300 Subject: [PATCH 1/2] New file --- git_instruction.md | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 git_instruction.md diff --git a/git_instruction.md b/git_instruction.md new file mode 100644 index 0000000..e69de29 From a5c54c2225131d517fc013d991365f989d6837d6 Mon Sep 17 00:00:00 2001 From: Mikhail Bovshin Date: Thu, 1 Dec 2022 20:51:24 +0300 Subject: [PATCH 2/2] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB=D0=B5?= =?UTF-8?q?=D0=BD=20=D1=84=D0=B0=D0=B9=D0=BB=20=D1=81=20=D0=B8=D0=BD=D1=81?= =?UTF-8?q?=D1=82=D1=80=D1=83=D0=BA=D1=86=D0=B8=D0=B5=D0=B9=20=D0=BF=D0=BE?= =?UTF-8?q?=20Git?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- git_instruction.md | 115 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 115 insertions(+) diff --git a/git_instruction.md b/git_instruction.md index e69de29..3f93be2 100644 --- a/git_instruction.md +++ b/git_instruction.md @@ -0,0 +1,115 @@ +# Инструкция по началу работы с Git + +1. Введение +2. Самое начало +3. Основные команды +4. Работа с ветками +5. Работа с файлами +6. Работа с удаленными репозиториями +7. Дополнительно + +## Введение + + Git - система контроля версий. Она позволяет создавать и отслеживать версии файлов и эффективно работать с ними. Облегчает обращение с версиями файлов при работе в коллективе и тратит меньше компьютерной памяти, чем "традиционный" метод сохранения каждой версии в виде отдельного файла. Подробнее: [Git](https://ru.wikipedia.org/wiki/Git). + +*** + +## Самое начало + +Для начала работы с Git следует: + +* Создать папку, которая в дальнейшем станет **репозиторием** +* Включить **терминал** +* Назначить папку репозиторием, инициализировав Git при помощи команды *git init* + +*** + +## Основные команды + +***git init*** - объявляет папку репозиторием, инициализирует систему контроля версий. + +*__git add__ file_name* - добавляет файл *file_name* к следующему сохранению версии (коммиту). + +> *git add .* - добавляет все файлы в трэк. + +***git commit*** - фиксирует изменения и регистрирует новую версию. + +> *git commit -m "Сообщение"* - для добавления комментария к версии. + +***git log*** - показывает список всех версий (коммитов) в хронологическом порядке. + +> *git log --oneline* - отображает более компактный вариант списка версий. +> +> *git log --graph* - добавляет графическое отображение ветвления. + +***git diff*** - показывает разницу между текущей и зафиксированной версией файла. + +*__git checkout__ hash* - перемещает к версии (коммиту) с хэшем *hash*. + +> *git checkout master* - возвращает к ветке *master* (например, для продолжения работы с актуальной версией). +> +> Касательно перемещения между ветками - см. подробнее далее. + +***git status*** - показывает состояние рабочей папки и файлов. + +*__git reset__ hash* - делает откат к коммиту с хэшем *hash*. + +*__git restore__ file_name* - сбрасывает изменения в файле с состоянием *modified*. + +*** + +## Работа с ветками + +***git branch*** - показывает список всех веток (и выделяет название ветки, в которой находишься в данный момент). + +*__git branch__ branch_name* - создает новую ветку *branch_name*. + +*__git checkout__ branch_name* - перемещает в ветку *branch_name*. + +*__git checkout -b__ branch_name* - создает новую ветку и сразу перемещает в нее. + +>*git log* отображает только историю изменений, связанных с той веткой, из которой вызвана (т.е. коммиты данной ветки и коммиты родительской ветки до создания данной ветки)! + +*__git merge__ branch_name* - осуществляет слияние ветки *branch_name* с той веткой, из которой вызвана команда. + +*__git branch -d__ branch_name* - удаляет ветку *branch_name*. + +*** + +## Работа с файлами + +Можно сделать так, чтобы Git игнорировал некоторые файлы, хранящиеся в репозитории (например, изображения, использующиеся в файлах, у которых отслеживается версионность, но сами не меняющиеся от версии к версии). Для этого необходимо: + ++ Создать в репозитории файл под названием ***.gitignore*** ++ Написать в этом файле название файла, который хотим игнорировать (с раширением) ++ Добавить ***.gitignore*** к коммиту + +>Чтобы было меньше проблем - имена файлов делать на латинице и **без пробелов**. + +*** + +## Работа с удаленными репозиториями + +Т.е. работа с репозиториями, находящимися в интернете на GitHub, в том числе - работа в команде с репозиториями, созданными другими людьми. Это происходит следующим образом: + +* Копирование чужого репозитория в свой аккаунт на GitHub с помощью кнопки ***Fork*** _(в случае, если нужно работать, не затрагивая напрямую исходный проект)_. +* Создание репозитория на GitHub, заполнение его в соответствии с подсказками сайта _(в случае создания собственного удаленного репозитория)_. +* Клонирование репозитория на компьютер при помощи команды *__git clone__ URL* (ссылку на репозиторий можно получить, нажав зеленую кнопку ***Code*** на сайте). +* Создание ___отдельной ветки___, в которой будут происходить все изменения. +* Отправка новой версии в удаленный репозиторий на своем аккаунте с помощью *__git push__*. +* После этого на GitHub появляется возможность отправить ***pull request*** исходному пользователю. + +*__git clone__ URL* - клонирует на компьютер репозиторий, находящийся по указанному адресу. + +*__git push__* - отправляет изменения с компьютера в удаленный репозиторий. + +*__git pull__* - "стягивает" изменения с удаленного репозитория на компьютер. + +*** + +## Дополнительно + +* Клавиша *Tab* помогает быстрее вводить название файла. +* С помощью клавиш-*стрелок* можно быстро вызывать команды, уже использованные в терминале ранее. +* Перед сохранением версии (*git commit*) нужно не забыть сохранить изменения в файле (*Ctrl+S*)! +* ***clear*** - очищает терминал от предыдущих команд. \ No newline at end of file