{"id":16191911,"url":"https://github.com/prisonbreak8/git-commands","last_synced_at":"2026-02-16T22:09:10.962Z","repository":{"id":212247306,"uuid":"714211835","full_name":"PrisonBreak8/git-commands","owner":"PrisonBreak8","description":"Подсказки по командам Git","archived":false,"fork":false,"pushed_at":"2024-05-30T11:35:14.000Z","size":1743,"stargazers_count":4,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-10-14T00:03:34.832Z","etag":null,"topics":["command","course","git","github"],"latest_commit_sha":null,"homepage":"https://www.youtube.com/@JavaScriptru-videos","language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/PrisonBreak8.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-11-04T08:34:28.000Z","updated_at":"2024-05-30T11:35:17.000Z","dependencies_parsed_at":null,"dependency_job_id":"14d2867a-33be-4999-ae4c-f73f15c369e3","html_url":"https://github.com/PrisonBreak8/git-commands","commit_stats":null,"previous_names":["prisonbreak8/git-commands"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/PrisonBreak8/git-commands","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PrisonBreak8%2Fgit-commands","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PrisonBreak8%2Fgit-commands/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PrisonBreak8%2Fgit-commands/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PrisonBreak8%2Fgit-commands/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/PrisonBreak8","download_url":"https://codeload.github.com/PrisonBreak8/git-commands/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PrisonBreak8%2Fgit-commands/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279017283,"owners_count":26086051,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-13T02:00:06.723Z","response_time":61,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["command","course","git","github"],"created_at":"2024-10-10T08:07:44.487Z","updated_at":"2025-10-14T00:03:45.962Z","avatar_url":"https://github.com/PrisonBreak8.png","language":null,"readme":"# КОМАНДЫ GIT\n\n## ОСНОВНЫЕ КОМАНДЫ\n\n[Шпаргалка](https://frontend-stuff.com/blog/git-cheat-sheet/)\n\n### Сервисы хостинга GIT репозиториев\n*Самые распространенные сервисы*\n1. [GitHub](https://github.com/)\n2. [BitBucket](https://bitbucket.org/)\n3. [GitLab](https://about.gitlab.com/)\n\n---\n\n## 1.1 Основные команды терминала\n* Проверка версии GIT  \n```\ngit --version   \n``` \n* Команда выводит путь к текущей папке  \n```\npwd   \n```  \n* Создание папки\n```\nmkdir название папки\n```\n* Перейти в папку \n```\ncd название папки\n```\n* Перейти в родительскую папку\n```\ncd ..\n```\n\n* Создание пустого файла\n```\ntouch название файла\n```\n\n*  Создание файла с текстом\n```\necho \"Any text\" \u003e file.txt\n```\n* Список файлов в папке\n```\nls\n```\n* Прочитать файл\n```\ncat file.txt\n```\n* Удаление файла\n```\nrm file.txt\n```\n---\n\n## 2.1 Git – Основы – Конфигурация\n[Подробнее здесь](https://www.youtube.com/watch?v=hWiqh6YUUS8\u0026list=PLDyvV36pndZFHXjXuwA_NywNrVQO0aQqb\u0026index=2)\n\n### Настройка имени и email автора\n* **gitconfig** - Изменение конфигурации Git\n* **--global** - Имя будет настроено глобально для всех репозиториев\n* **user.name** - Настройка имени автора\n* **user.email** - Настройка емэйла автора\n\n*Имя автора будет использоваться во всех репозиториях на вашем компьютере и будет браться из этого файла конфигурации*\n```\ngit config --global user.name \"Your Name\"\n```\n```\ngit config --global user.email \"your email\"\n```\n\n### Просмотр всех настроек Git\n```\ngit config --list\n```\n```\ngit config --list --global\n```\n```\ncat ~/.gitconfig\n```\n```\ngit config user.name\n```\n```\ngit config user.email\n```\nБолее подробную информацию о config можно получить с помощью команды\n```\ngit help config\n```\n-\n\n## 2.2 Git – Основы – Создание репозитория, первый коммит\n[Подробнее здесь](https://www.youtube.com/watch?v=j2F77U-2FuQ\u0026list=PLDyvV36pndZFHXjXuwA_NywNrVQO0aQqb\u0026index=3)\n\n\n### Создание нового репозитория на компьютере в текущей папке\n*Команда вводится в той папке, в которой планируется создать новый пустой репозиторий*\n```\ngit init\n```\nПосле инициализации репозитория создается скрытая папка **.git**\n\n### Удаление локального репозитория\n\nЕсли был создан случайно репозиторий локально, можно просто удалить папку .git, это полностью уничтожит репозиторий  и, разумеется, отменит то,что сделал ``` git init``` команда:  \n```\nrm -r .git\n```\n### Связывание локального репозитория с удаленным\n\n```\ngit remote add origin URL репозитория\n```\n* Отображение скрытых папок и файлов  \nTerminal, iTerm2 (Mac), Git Bash (Windows)  \n```\nls -la\n```\n* PowerShell (Windows)  \n```\nls -Force\n```\n### Области Git\n\n![Области Git](./assets/gitAreas.png)\n\n* Рабочая директория (**Working directory**) - видимые файлы и папки проекта.\n* Индекс (**Staging area**) - в эту область добавляются файлы, которые хотим сохранить. Подготавливаем файлы для коммита.\n* Репозиторий (**Repository**) - сохранение файлов в репозиторий. То,что находится в папке .git. Там хранится информация обо всех версиях проекта, коммитов \n\nЗона **Staging area** и **Repository** скрыты в папке .git\n\n### Проверка текущего состояния репозитория\nЭта команда показывает те изменения,которые уже находятся в **Staging area** и которые были подготовлены для коммита.\n\n```\ngit status\n```\n*ВСЕ ОБЪЕКТЫ GIT СОХРАНЯЮТСЯ В ПАПКУ objects, в которой создаются подпапки с хэш-номером(уникальный идентификатор) объекта.*\n\n### Добавление файлов в Staging area\nКоманда *git add* добавляет файл, либо файлы из **Working directory**  в **Staging area**\n\n```\ngit add название файла\n```\nЭтой командой мы подготавливаем файлы для сохранения в репозиторий, посредством перемещения в **Staging area**\n\n-\n\n### Сохранение изменений (commit)\n\n**Git – Основы – Хороший коммит**\n[Подробнее здесь](https://www.youtube.com/watch?v=WlIzoLK46is\u0026list=PLDyvV36pndZFHXjXuwA_NywNrVQO0aQqb\u0026index=7)\n\nКоманда *git commit* сохраняет файлы из **Staging area** в **Repository**\n\n#### КОММИТ (Commit)\n\nКоммит - это ссылка на определенное дерево. Все коммиты связаны между собой. Также это объект git, который созраняется в папке .git.\n\nУказатель(Ссылка) **HEAD** на определенный коммит, т.е. в **Working directory** мы видим именно ту версию проекта, на которую ссылается **HEAD** указатель\n\nВетка ссылки всегда ссылается на последний коммит, чтобы видеть самую свежую версию.\n```\ngit commit\n```\nСохранение всех изменений из **Staging area** в **Repository** с названием коммита  \n*Сообщение указывает на то,что сделано в этом коммите*\n```\ngit commit -m \"message\"\n```\n-\n\n## 2.3 Git – Основы – Git и права на файлы\n[Подробнее здесь](https://www.youtube.com/watch?v=KrlYu1ToS-o\u0026list=PLDyvV36pndZFHXjXuwA_NywNrVQO0aQqb\u0026index=4)\n\n### Статусы отслеживания файлов\n* **Untracked** - Неотслеживаемый, те файлы, которые только что добавили в **Working directory** (Новый файл)\n\n*  **Staged** - Подготовленный, файл, добавленный в **Staging area**\n\n* **Unmodified** - Немодифицированный, те файлы, которые сохранены в **Repository**\n\n* **Modified** - Модифицированный, файлы находящиеся в рабочей директории и которые можно подготовить для сохранения(перенести в **Staging area**) после этого их состояние становится **Staged**\n\n---\n\n## 2.4 Git – Основы – Git show, кто такие автор и коммиттер\n[Подробнее здесь](https://www.youtube.com/watch?v=_qWWtXu07GI\u0026list=PLDyvV36pndZFHXjXuwA_NywNrVQO0aQqb\u0026index=5)\n\n**git show** показывает текущий коммит\n\n```\ngit show\n```\n```\ngit show --pretty=fuller\n```\nМожно указать автора коммита командой (эта команда меняет автора а не коммитепа)\n```\ngit commit --author='John Smith \u003cjohn@me.com\u003e' --date'...'\n```\n-\n\n## 2.5 Git – Основы – Добавление файлов и директорий, git status\n[Подробнее здесь](https://www.youtube.com/watch?v=xzEMA7rzN3Y\u0026list=PLDyvV36pndZFHXjXuwA_NywNrVQO0aQqb\u0026index=6)\n\n**git-status** показывает какие файлы были изменены или добавлены, а также показывает какие файлы находятся в **Staging area**\n```\ngit status\n```\nКоманда **git add** подготавливает файлы перед коммитом, занося их в **Staging area**\n[Подробнее здесь](https://ru.stackoverflow.com/questions/431839/%D0%92-%D1%87%D0%B5%D0%BC-%D1%80%D0%B0%D0%B7%D0%BD%D0%B8%D1%86%D0%B0-%D0%BC%D0%B5%D0%B6%D0%B4%D1%83-git-add-add-a-add-u-%D0%B8-add)\n```\ngit add\n```\nКоманда **git add .** добавит файлы только текущей директории, в которой запущена команда и добавит их в в **Staging area**\n```\ngit add .\n```\nКоманда **git add -A** возьмет абсолютно все файлы, которые находятся в папке,в которой был создан репозиторий и добавит их в в **Staging area**\n```\ngit add -A\n```\n**Git – Основы – Зачем нужен индекс?**\n[Подробнее здесь](https://www.youtube.com/watch?v=75TOiisShWw\u0026list=PLDyvV36pndZFHXjXuwA_NywNrVQO0aQqb\u0026index=8)\n\nС флагом git add -p Git даст возможность для каждого измененного фрагмента в файле предложит нам решить добавлять его в Index или нет\n```\ngit add -p \"file name\"\n```\n\nВы можете создать .gitignore файл в корневом каталоге репозитория, чтобы сообщить Git, какие файлы и каталоги игнорировать при фиксации.\n[Подробнее здесь](https://docs.github.com/ru/get-started/getting-started-with-git/ignoring-files)\n```\n.gitignore\n```\nДаже если файл находиться в .gitignore его можно добавить с помощью команды\n```\ngit add --force \"file name\"\n```\n Если рабочая папка не содержит файлов, но вы ее хотите добавить в репозиторий.\n Чтобы это обойти, в дерикторию поместите вспомогательный файл.\n```\n.gitkeep\n```\n-\n\n## 2.8 Git – Основы – Коммиты без git add\n[Подробнее здесь](https://www.youtube.com/watch?v=UX7O3oekwFA\u0026list=PLDyvV36pndZFHXjXuwA_NywNrVQO0aQqb\u0026index=9)\n\nСразу записать изменения в репозиторий. Ограничение(игнорирует файлы которые не  отслеживаются Git)\n```\ngit commit --all -m 'commit text'\n```\n*Alias* \n```\ngit config --global alias.commitall '!git add -A;git commit'\n```\n*Alias (пример использования)* \n```\ngit commitall -m 'commit text'\n```\n\nКраткая запись\n```\ngit commit -am 'commit text'\n```\n\nЕсли надо один файл добавить \n```\ngit commit -m 'commit text' \"file name\"\n```\n-\n\n## 2.9 Git – Основы – Удаление и переименование файлов\n[Подробнее здесь](https://www.youtube.com/watch?v=W71P4I0MGr0\u0026list=PLDyvV36pndZFHXjXuwA_NywNrVQO0aQqb\u0026index=10)\n\nГлобальная настройка файла .gitignore\n```\ngit config --global core.excludesFile \"$Env:USERPROFILE\\.gitignore\"\n```\nДля удаления файлов в Git существует команда (удаляет файлы из рабочей директории и из Index)\n```\ngit rm \"path\"\n```\n\nЕсли указывать директорию добавляем флаг **-r**\n```\ngit rm -r \"example src\"\n```\nУдаляет из Index но оставляет в рабочем каталоге. Применяется  часто к файлам которые хотим оставить в рабочем каталоге, но в дальнейшем не хранить в Git\n```\ngit rm -r --cached \"example src\"\n```\nПереименовать файлы можно с помощью команды\n```\ngit mv \u003cold\u003e \u003cnew\u003e\n```\n-\n\n## 3.1 Git – Ветки – Введение\n[Подробнее здесь](https://www.youtube.com/watch?v=aSohh-m5vJY\u0026list=PLDyvV36pndZFHXjXuwA_NywNrVQO0aQqb\u0026index=11\u0026ab_channel=JavaScript.ru)\n\n**ВЕТКА** - это ссылка на коммит. Когда мы работаем в рамках одной ветки, Git автоматически перемещает ссылку на самый последний коммит. Указатель **HEAD** используется для переключения между ветками и перехода на разные коммиты этих веток.\n\nКоманда создания новой ветки. Название лучше давать такое, по которому можно понять,что именно разрабатывается в этой ветке.\n\n-\n\n## 3.2 Git – Ветки – Создание и переключение\n[Подробнее здесь](https://www.youtube.com/watch?v=ydtgQSaUzw0\u0026list=PLDyvV36pndZFHXjXuwA_NywNrVQO0aQqb\u0026index=12\u0026ab_channel=JavaScript.ru)\n\nОтображает список ветвей в проекте\n\n```\ngit branch\n```\nОтобразит ветку и информацию о последнем коммите\n```\ngit branch -v\n```\nСоздаем новую ветку командой\n```\ngit branch \u003cbranch name\u003e\n```\nКоманда **git checkout** с помощью нее и хэш номера коммита можно перейти в определенную версию проекта\nМожно использовать 4 или 5 начальных символов коммита. После этого Git переместит указатель HEAD на определенный коммит, который мы указали. Т.е git возьмет объекты,соответствующие этому коммиту и переместит их в рабочую область.\n\nТакже с помощью этой команды можно перейти на определенную ветку проекта. Ветка ссылается на последний коммит,сделанный в этой ветке\n\nПереключение между ветками. Указатель HEAD перемещается на указанную ветку \n```\ngit checkout \u003cbranch name\u003e\n```\nСоздание новой ветки и переход в нее (создает и сразу переключает на созданную ветку)\n```\ngit checkout -b \u003cbranch name\u003e\n```\nПереименовать **ТЕКУЩУЮ** ветку\n```\ngit branch -m \u003cnew branch name\u003e\n```\nУдаление ветки. Текущую ветку нельзя удалить, если вы хотите удалить текущую ветку, нужно из нее выйти\n```\ngit branch -d \u003cbranch name\u003e\n```\n\nАбсолютно любая ветка доступна нам после того, как мы установили связь с удаленным репозиторием и мы можем на нее переключаться с помощью команды  ``git checkout branch name``\n\n-\n\n## 3.3 Git – Ветки – Команда checkout при незакоммиченных изменениях\n[Подробнее здесь](https://www.youtube.com/watch?v=KxKjBneF_NI\u0026list=PLDyvV36pndZFHXjXuwA_NywNrVQO0aQqb\u0026index=13\u0026ab_channel=JavaScript.ru)\n\n**Force a Checkout**\n\nВы можете передать опцию **-f** или **--force** с командой **git checkout**, чтобы заставить Git переключать ветки , даже если у вас есть непроиндексированные изменения (другими словами, индекс рабочего дерева отличается от HEAD). По сути, его можно использовать для отмены локальных изменений.\n```\ngit checkout --force \u003cbranch name\u003e\n```\nКоманда **git stash** позволяет на время архивировать (или «отложить») изменения, сделанные в рабочей копии, чтобы вы могли применить их позже.\n```\ngit stash\n```\nЗатем вернуть изменения командой\n```\ngit stash pop\n```\n-\n\n## 3.4 Git – Ветки – Перенос незакоммиченных изменений\n[Подробнее здесь](https://www.youtube.com/watch?v=mlxmxsBzIMs\u0026list=PLDyvV36pndZFHXjXuwA_NywNrVQO0aQqb\u0026index=14\u0026ab_channel=JavaScript.ru)\n\n-\n\n## 3.5 Git – Ветки – Перенос веток \"вручную\"\n[Подробнее здесь](https://www.youtube.com/watch?v=6oZG-pAeHRE\u0026list=PLDyvV36pndZFHXjXuwA_NywNrVQO0aQqb\u0026index=15\u0026ab_channel=JavaScript.ru)\n\n-\n\n## 3.6 Git – Ветки – Состояние отделённой HEAD\n[Подробнее здесь](https://www.youtube.com/watch?v=g0GgtqlhHaw\u0026list=PLDyvV36pndZFHXjXuwA_NywNrVQO0aQqb\u0026index=16\u0026ab_channel=JavaScript.ru)\n\n-\n\n## 3.7 Git – Ветки – Восстановление предыдущих версий файлов\n[Подробнее здесь](https://www.youtube.com/watch?v=3z-LjQacu2Q\u0026list=PLDyvV36pndZFHXjXuwA_NywNrVQO0aQqb\u0026index=17\u0026ab_channel=JavaScript.ru)\n\n-\n\n## 3.8 Git – Ветки – Просмотр истории и старых файлов, символы ~, ^, @, поиск с :/ \n[Подробнее здесь](https://www.youtube.com/watch?v=l-sTQBr3rXY\u0026list=PLDyvV36pndZFHXjXuwA_NywNrVQO0aQqb\u0026index=18\u0026ab_channel=JavaScript.ru)\n\nКоманда **git log** показывает историю изменений коммитов\n```\ngit log\n```\nКомпактный вывод коммитов\n```\ngit log --oneline\n```\nВывод коммитов из ветки main\n```\ngit log main --oneline\n```\nПо умолчанию показывает **коммит из HEAD** \n```\ngit show\n```\nHо можно передать любой другой (например через ссылку или ID)\n```\ngit show main\n```\n**git show HEAD**. Эта команда отобразит идентификатор фиксации, на который в данный момент указывает HEAD\n```\ngit show HEAD. HEAD мождно заменить символом '@'\n```\nС тильда коммит на родителя ниже\n```\ngit show HEAD~\n```\nС двумя тильда коммит на родителя ниже (флаг *--quiet* для краткости информации без изменений)\n```\ngit show HEAD~~ --quiet\n```\nТоже самое что *git show HEAD~~~* (три коммита назад)\n```\ngit show HEAD~3 --quiet\n```\n-\n\n## 3.9 Git – Ветки – Слияние веток \"перемоткой\"\n[Подробнее здесь](https://www.youtube.com/watch?v=g--N6QHbt6Q\u0026list=PLDyvV36pndZFHXjXuwA_NywNrVQO0aQqb\u0026index=19\u0026ab_channel=JavaScript.ru)\n\nОсуществляет слияние ветки\n```\ngit merge \u003cbranch name\u003e\n```\nОтменить слияние ветки (если передумали).Команда **merge** перед переносом ветки записывает старый индитификатор в файл **cat .git/ORIG_HEAD**\n```\ncat .git/ORIG_HEAD\n```\nМожем использовать его в качестве ссылки (переносим обратно на **ORIG_HEAD**)\n```\ngit branch -f main ORIG_HEAD\n```\n-\n\n## 3.10 Git – Ветки – Удаление веток\n[Подробнее здесь](https://www.youtube.com/watch?v=yFVPNYSTlLQ\u0026list=PLDyvV36pndZFHXjXuwA_NywNrVQO0aQqb\u0026index=20)\n\nДля удаления ветки используется команда\n```\ngit branch -d \u003cbranch name\u003e\n```\nПосле удаления если оказалось что ветка все еще нужна. Удаления можно 'Отменить'.\nДля этого нужно создать новую ветку с таким же названием, которая указывает на тот же коммит что и удаленая **git branch feature 211c**\n```\ngit branch \u003cbranch name\u003e \u003cid commit\u003e\n```\n-\n\n## 3.11 Git – Ветки – История переключений веток: лог ссылок reflog\n[Подробнее здесь](https://www.youtube.com/watch?v=FxyGx_XTRhA\u0026list=PLDyvV36pndZFHXjXuwA_NywNrVQO0aQqb\u0026index=21)\n\nВосстановить удаленную ветку если мы не знаем идентификатор коммита нам поможет **reflog**\n```\ncat .git/logs/HEAD\n```\nДля красивого вывода **reflog**\n```\ngit reflog \n```\n```\ngit reflog \u003cbranch name\u003e\n```\nДобавит к **reflog** вывод даты. **iso**=формат даты\n```\ngit reflog --date=iso\n```\n-\n\n## 4.1 Git – Удаление \"лишних\" файлов и незакоммиченных изменений\n[Подробнее здесь](https://www.youtube.com/watch?v=h9kYvAQoXjo\u0026list=PLDyvV36pndZFHXjXuwA_NywNrVQO0aQqb\u0026index=22)\n\n Это удобный метод удаления неотслеживаемых файлов в рабочем каталоге репозитория . Неотслеживаемые файлы — это файлы, которые находятся в каталоге репозитория, но еще не были добавлены в индекс репозитория с помощью git add.\n```\ngit clean -dxf\n```\n-\n\n## 5.1 Git – Reset – Жесткий reset --hard: отмена изменений, удаление коммитов\n[Подробнее здесь](https://www.youtube.com/watch?v=DMncFUqzDuM\u0026list=PLDyvV36pndZFHXjXuwA_NywNrVQO0aQqb\u0026index=23)\n\n**git reset** — это мощная команда, используемая для отмены локальных изменений в репозитории Git.\n```\ngit reset\n```\n-\n\n## 5.2 Git – Reset – Мягкий reset --soft: замена и объединение коммитов\n[Подробнее здесь](https://www.youtube.com/watch?v=bUdLmdSMm7E\u0026list=PLDyvV36pndZFHXjXuwA_NywNrVQO0aQqb\u0026index=24)\n\n**git reset --soft**  Вообще не трогает индексный файл или рабочее дерево (но сбрасывает заголовок в commit , как и все режимы). · **--hard**. Сбрасывает.\n```\ngit reset --soft\n```\n-\n\n## 5.3 Git – Reset – Правка последнего коммита: commit **--amend**\n[Подробнее здесь](https://www.youtube.com/watch?v=Hho9WBgWil0\u0026list=PLDyvV36pndZFHXjXuwA_NywNrVQO0aQqb\u0026index=25)\n\n**git commit --amend** — удобный способ изменить самый последний коммит . Он позволяет комбинировать поэтапные изменения с предыдущим коммитом вместо создания совершенно нового коммита. Его также можно использовать для простого редактирования предыдущего сообщения о фиксации без изменения его снимка.\n```\ngit commit --amend -m \u003ccommit...\u003e\n```\n-\n\n## 5.4 Git – Reset – Смешанный reset (без флагов), сравнение видов reset\n[Подробнее здесь](https://www.youtube.com/watch?v=r1oUTfqKXac\u0026list=PLDyvV36pndZFHXjXuwA_NywNrVQO0aQqb\u0026index=26)\n\n-\n\n## 5.5 Git – Reset – Таблица с действиями reset\n[Подробнее здесь](https://www.youtube.com/watch?v=hb-x1SJB43s\u0026list=PLDyvV36pndZFHXjXuwA_NywNrVQO0aQqb\u0026index=27)\n\n## СЛИЯНИЯ ВЕТОК\n\nСлияние ветки (feature branch) в текущую ветку (receiving branch). Т.е указываем название ветки, которую хотим слить с текущей веткой. Для этого нужно перейти в ту ветку и находясь в ней произвести команду:\n```\ngit merge feature \u003cbranch name\u003e\n```\nПосле этого git автоматически создаст merge commit, у которого будет 2 родительских коммита\n\n#### Процесс слияния веток\n\n1. Создать новую ветку **new-feature** из ветки **main**\n2. Перейти в новую ветку **new-feature**\n3. Внести изменения в проект (создание новых файлов и папок, изменить существующие)\n4. Создать коммит или несколько коммитов в ветке **new-feature**\n5. Перейти обратно в ветку **main** и также создать коммиты\n6. Выполнить слияние ветки **new-feature** в ветку **main**\n7. После слияния ветку **new-feature** можно удалить (т.к все коммиты этой ветки сохранятся в merge commit ветки main)\n\nПосле слияния веток выведется сообщение \"Merge made by the 'ort' strategy\"  \nort strategy - это стратегия объединения веток по умолчанию для всех версий гита начиная с 2.31.0\n\n---\n\n#### Связь локального и удаленного репозитория\n\n![](./assets/repos.png)\n\nКоманда для копирования удаленного репозитория в локальный (клонирование репозитория)\n```\ngit clone \u003curl\u003e\n```\nТ.е все объекты git скачиваются с удаленного репозитория и устанаваливаются на ваш компьютер  \n\nЕсли репозиторий публичный (Public), то абсолютно любой человек может скачать себе на компьютер этот репозиторий,если же частный (Private), то сделать это могут только те, у кого есть права\n\n**ORIGIN** - это имя удаленного репозиторися по-умолчанию.\n\nКоманда **git branch -a** отображает все ветки, включая те, которые находятся в удаленных репозиториях\n```\ngit branch -a\n```\nКоманда **git pull** - загрузка и применение изменений с удаленной ветки в локальную\n```\ngit pull\n```\n\nТ.е если локально мы находимся в ветке new-Feature, то примени команду мы скачаем изменения с этой же ветки удаленног репозитория, но для этог необходимо, чтобы была связь между локальным и удаленным репозиторием\n\nКоманда **git push** - загрузка изменений из локальной ветки в ветку удаленного репозитория\n\n```\ngit push\n```\n\n## To Be Continued...\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fprisonbreak8%2Fgit-commands","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fprisonbreak8%2Fgit-commands","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fprisonbreak8%2Fgit-commands/lists"}