diff --git "a/\320\230\320\275\321\201\321\202\321\200\321\203\320\272\321\206\320\270\321\217_\320\277\320\276_GIT.md" "b/\320\230\320\275\321\201\321\202\321\200\321\203\320\272\321\206\320\270\321\217_\320\277\320\276_GIT.md"
new file mode 100644
index 0000000..fcc1dca
--- /dev/null
+++ "b/\320\230\320\275\321\201\321\202\321\200\321\203\320\272\321\206\320\270\321\217_\320\277\320\276_GIT.md"
@@ -0,0 +1,269 @@
+# Инструкция по использованию GIT
+
+## Начало работы
+Для начала работы необходимо установить две программы:
+1. GIT:
+2. Virtual Studio Code:
+
+## Настройка **VSC:**
+
+1. Запустить программу в папке, где планируется вести контроль версий либо выбрать директорию:
+
+*Файл-Открыть папку...*;
+
+2. Запустить терминал: *Вид-Терминал*
+
+## Работа в **GIT**:
+
+1. Для работы в **GIT** необходимо единожды ввести своё имя и e-mail, которое в дальнейшем будет использоваться программой:
+
+ git config --global user.name «Ваше имя английскими буквами»
+• git config --global user.email ваша почта@example.com
+
+Ввод комманд делается в терминале **VSC**.
+
+2. Узнаём версию программы GIT (далее GIT):
+
+**git --version**
+
+3. Проводим иннициализацию **GIT**:
+
+**git init**
+
+4. Узнаём в каком репозитории находимся и есть ли сохранения commits:
+
+**git status**
+
+5. Добавляем файлы, версии у которых хотим контролировать **GIT**:
+
+**git add fileName.расш**
+**git add * ** - добавление всех файлов и папок в родительском и потомковых папках
+
+6. Сохраняемизменения в файле, добавленном командой **add**
+**git commit -m "_комментарий_"**
+
+7. При дальнейших изменениях в файлах, версии которых мы хотим контролировать необходимо повторять **п.5,6.**.
+
+
+8. Дополнительные команды, необходимые для работы с GIT:
+
+**git log** - выводит журнал изменений с указанием имён всех сохранений изменений
+**git log --graph** - выводит журнал изменений с графическим изображением веток
+
+**cd _имя папки_** - заходит в папку, расположенную в текущей
+**cd ..** - подниается на одну ступень вверх по каталогу
+
+
+**git checkout** (*первые четыре символа имени нужного сохранения изменений*) - загружает нужное нам сохранение
+
+**git diff** - показывает разницу между текущим состоянием файла и тем, которое в сохранении изменений.
+**git diff nameBranch1..nameBranch2** - показывает разницу между файлами в разных ветках
+
+## Дополнительные команды в **GIT**
+
+## Конфигурация
+**git config --global user.name "[name]"**
+
+ — установить имя, которое будет прикрепляться к коммиту.
+
+
+**git config --global user.email "[email address]"**
+
+ — установить email, который будет прикрепляться к коммиту.
+
+**git config --global color.ui auto**
+
+ — включить полезную подсветку командной строки.
+
+**git config --global push.default current**
+
+ — обновлять удаленную ветку с таким же именем, что и локальная, при пуше изменений (если не указано иного).
+
+**git config --global core.editor [editor]** — установить редактор для редактирования сообщений коммита.
+
+**git config --global diff.tool [tool]** — установить программу для разрешения конфликтов при слиянии.
+
+## Создание репозиториев
+**git init [project-name]** — создать новый локальный репозиторий с заданным именем.
+
+**git clone [url]** — загрузить проект и его полную историю изменений.
+
+## Работа с изменениями
+**git status** — полный список изменений файлов, ожидающих коммита.
+
+**git status -s** — краткий вид изменений.
+
+**git diff** — показать изменения в файлах, которые еще не были добавлены в индекс коммита (staged).
+
+**git add [file]** — сделать указанный файл готовым для коммита.
+
+**git add .** — сделать все измененные файлы готовыми для коммита.
+
+**git add '*.txt'** — добавить только файлы, соответствующие указанному выражению.
+
+**git add --patch filename** — позволяет выбрать какие изменения из файла добавятся в коммит.
+
+**git diff --staged** — показать что было добавленно в индекс с помощью git add, но еще не было закоммиченно.
+
+**git diff HEAD** — показать что изменилось с последнего коммита.
+
+**git diff HEAD^** — показать что изменилось с предпоследнего коммита.
+
+**git diff [branch]** — сравнить текущую ветку с заданной.
+
+**git difftool -d** — то же самое, что и diff, но показывает изменения в заданной difftool.
+
+**git difftool -d master..** — показать изменения, сделанные в текущей ветке.
+
+**git diff --stat** — показать статистику какие файлы были изменены и как.
+
+**git reset [file]** — убрать файлы из индекса коммита (изменения не теряются).
+
+**git commit** — записать изменения в репозиторий. для написания сообщения откроется назначенный редактор.
+
+**git commit -m "[descriptive message]"** — записать изменения с заданным сообщением.
+
+**git commit --amend** — добавить изменения к последнему коммиту.
+
+
+## Работа с ветками
+
+**git branch** — список всех локальных веток в текущей директории.
+
+**git branch [branch-name]** — создать новую ветку.
+
+**git checkout [branch-name]** — переключиться на указанную ветку и обновить рабочую директорию.
+
+**git checkout -b /** — переключиться на удаленную ветку.
+
+**git checkout [filename]** — вернуть файл в первоначальное состояние если он еще не был добавлен в индекс коммита.
+
+**git merge [branch]** — соединить изменения в текущей ветке с изменениями из заданной.
+
+**git merge --no-ff [branch]** — соединить ветки без режима “fast forwarding”.
+
+**git branch -a** — посмотреть полный список локальных и удаленных веток.
+
+**git branch -d [branch]** — удалить заданную ветку.
+
+**git branch -D [branch]** — принудительно удалить заданную ветку, игнорируя ошибки.
+
+**git branch -m ** — переименовать ветку.
+
+
+##Работа с файлами
+
+**git rm [file]** — удалить файл из рабочей директории и добавить в индекс информацию об удалении.
+
+**git rm --cached [file]** — удалить файл из репозитория, но сохранить его локально.
+
+**git mv [file-original] [file-renamed]** — изменить имя файла и добавить в индекс коммита.
+
+Отслеживание файлов
+**.gitignore** — текстовый файл, в котором задаются правила для исключения файлов из репозитория. Например:
+
+*.log
+build/
+temp-*
+git ls-files --other --ignored --exclude-standard — список всех игнорируемых файлов.
+
+
+## Сохранение фрагментов
+
+**git stash** — положить во временное хранилище все отслеживаемые файлы.
+
+**git stash pop** — восстановить последние файлы, положенные во временное хранилище.
+
+**git stash list** — список всех сохраненных изменений во временном хранилище.
+
+**git stash drop** — удалить последние файлы, положенные во временное хранилище.
+
+
+## Просмотр истории
+
+**git log** — список изменения текущей ветки.
+
+**git log --follow [file]** — список изменения текущего файла, включая переименования.
+
+**git log --pretty=format:"%h %s" --graph** — изменение вида отображения истории изменений.
+
+**git log --author='Name' --after={1.week.ago} --pretty=oneline --abbrev-commit** — посмотреть над чем работал заданный пользователь последнюю неделю.
+
+**git log --no-merges master..** — посмотреть историю изменений только для текущей ветки.
+
+**git diff [file-branch]..[second-branch]** — посмотреть различия между двумя заданными ветками.
+
+**git show [commit]** — показать метадату и изменения в заданном коммите.
+
+**git show [branch]:[file]** — посмотреть на файл в другой ветке, не переключаясь на неё.
+
+
+## Отмена коммитов
+
+**git reset** — убрать изменения из индекса коммита, сами изменения останутся.
+
+**git reset [commit/tag]** — отменить все коммиты после указанного коммита, изменения будут сохранены локально.
+
+**git reset --hard [commit]** — принудительно вернутся к указанному коммиту, не сохраняя историю и изменения.
+
+
+## Синхронизация изменений
+
+**git fetch [bookmark]** — загрузить всю историю с заданного удаленного репозитория.
+
+**git merge [bookmark]/[branch]** — слить изменения локальной ветки и заданной удаленной.
+
+**git push** — запушить текущую ветку в удаленную ветку.
+
+**git push [remote] [branch]** — запушить ветку в указанный репозиторий и удаленную ветку.
+
+**git push [bookmark] :[branch]** — в удаленном репозитории удалить заданную ветку.
+
+**git push -u origin master** — если удаленная ветка не установлена как отслеживаемая, то сделать ее такой.
+
+**git pull** — загрузить историю и изменения удаленной ветки и произвести слияние с текущей веткой.
+
+**git pull [remote][branch]** — указать конкретную удаленную ветку для слияния.
+
+**git remote** — посмотреть список доступных удаленных репозиториев.
+
+**git remote -v** — посмотреть детальный список доступных удаленных репозиториев.
+
+**git remote add [remote][url]** — добавить новый удаленный репозиторий.
+
+#Работа с удалённым репозиторием
+##Загрузка репозитория из Github в Git
+1. создать аккаунт на Github.com
+2. Создать локальный репозиторий
+3. "Подружить" ваш локальный и удалённые репозитории. Github при создании нового репозитория подскажет, как это можно сделать.
+4. Отправить (push) ваш локальный репозиторий в удалённый (на Github). При этом вам, возможно, нужно будет авторизоваться на удалённом репозитории.
+5. Провести изменения "с другого компьютера".
+6. Выкачать (pull) актуальное состаяние из удалённого репозитория.
+
+##Загрузка из Git (компьютера) в Github (интернет)
+1. Создаём на компьютере репозиторий.
+2. Создаём аккаунт на Github в интернете.
+3. В Github в правом верхнем углу нажимаем "+" -"New repository" - даём имя - тип "Public" - "Creat repository"
+4. Есть три варианта создания репозитория:
+ - Создать новый репозиторий через терминал;
+ - Привязать существующий репозиторий;
+ - Импортировать код из другого репозитория.
+5. Необходимо ввести комманды, которые предлагает Github для выбранного варианта, в Git. В нашем случае:
+-git remote add **origin** _(название репозитория)_ http://...
+-git branch -M **main** _(указывает имя главной ветки)_
+-git push -u origin main _(отправка)_
+6. При первой загрузке необходимо авторизироваться.
+
+##Итерации
+1. Вносим изменения в репозиторий в Git на компьютере.
+2. Командой **git push" отправляем изменения в Github интернет.
+3. Вносим изменения в Github (либо в нём самом редактируем, либо с другого компьютера)
+4. Командой **git pull** скачиваем в Git из Github изменения с одновременным слиянием веток.
+
+## Как сделать **pull request**
+1.Делаем **fork** стороннего репозитория (создаётся копия репозитория на нашем аккаунте)
+2. Делаем **clone СВОЕЙ** версии репозитория (скачиваем в Git на компьютере из Github своего аккаунта)
+3. Создаём новую ветку и в **НЕЁ** вносим свои изменения
+4.Фиксируем изменения, делая коммиты.
+5. Отправляем свою версию на свой аккаунт Github
+6. На сайте Github нажимаем появившуюся кнопку **pull recuest"