GIT

git add .
git commit -m "Изменение Сайта"
git push

git init new_project— создать репозиторий в новой папке new_project; git init --bare — создать «голый» репозиторий без рабочей директории (для серверов). только история коммитов

git clone <url> myproj — клонировать в папку myproj; git clone -b branch <url> — клонировать только указанную ветку; git clone --depth=1 <url> — сделать поверхностную копию (только последний коммит, быстрее и меньше места).

git help <команда> — показать справку по команде (например git help commit). git status - показывает состояния файлов в рабочем каталоге и индексе

git config — настройка Git (например git config –global user.name «Имя» и git config –global user.email «почта») git bugreport — создать архив с отчётом о баге (системная инфа, версия Git, логи), чтобы отправить разработчикам. Credential helpers — механизмы для хранения/управления паролями и токенами git config --global credential.helper store - сохранение логина/пароля в файл git config --global credential.helper 'cache --timeout=3600' - временное хранение в памяти, по умолчанию 15 минут git config --global credential.helper manager - Manager (Windows Credential Manager)

git add . - содержимое рабочего каталога в индекс для последующего коммита

git diff - вычисления разницы между любыми двумя Git деревьями git diff --staged - разница между индексом и последним коммитом git diff master branchB - разница между любыми двумя коммитами

git commit -m "Комментарий" - сохраняет все данные, добавленные в индекс в слепок во внутренней базе данных, а затем сдвигает указатель текущей ветки на этот слепок git commit -a -m "Комментарий" - добавить отслеживаемые изменения и закоммитить git commit --amend - изменить последний коммит

git log --oneline - команда короткого лога. Первая часть (a1b2c3d) — это хэш коммита. q - выход git notes add -m "Заметка" — добавить/просмотреть заметки к коммитам, не изменяя историю; git notes show a1b2c3d - просмотреть заметку конкретного коммита по хэшу (a1b2c3d) git notes list - список всех заметок

git restore README.md - теряются все незакоммиченные изменения в этом файле. Если случайно изменил файл и хочешь вернуть исходное состояние. git restore --staged <file> - удаляет файл из индекса (staged), но оставляет изменения в рабочей директории. Если добавил файл в индекс, но передумал коммитить его.

git mv git mv <old> <new> (переименовать или переместить файл), работает также с папками.

git reset --soft <commit> — HEAD переносится на <commit>, изменения остаются в staged, рабочие файлы не меняются, использовать для «переделки» коммита с сохранением подготовленных изменений. git reset --mixed <commit> — HEAD переносится на <commit>, изменения убираются из staged (становятся unstaged), рабочие файлы не меняются, использовать чтобы убрать файлы из индекса, но оставить изменения. git reset --hard <commit> — HEAD переносится на <commit>, индекс очищается, рабочие файлы откатываются к состоянию <commit>, использовать для полного отката и удаления всех изменений.

git rm file.txt — удалить файл из репозитория и с диска. git rm --cached file.txt — удалить файл только из репозитория, оставить на диске. git rm -r folder/ — удалить папку рекурсивно. git rm -f file.txt — принудительно удалить изменённый файл.

git clean -n — показать, какие файлы будут удалены (dry run). git clean -f — удалить неотслеживаемые файлы. git clean -fd — удалить неотслеживаемые файлы и папки. git clean -fx — удалить все неотслеживаемые файлы, включая игнорируемые в .gitignore. git clean -f -i — интерактивный режим, выбрать что удалять.

git branch — показать ветки git branch new-branch - создать новую git branch -d old-branch - удалить git branch -m old new - переименовать

Если работаешь с ветками — лучше git switch, Если нужно восстанавливать файлы из истории — только git checkout или git restore

git checkout branch - переключиться на ветку git checkout -- file - восстановить файл git checkout -b new-branch - создать и переключиться на новую ветку

git switch branch - переключение на ветку git switch -c new-branch - создание новой ветки

git merge branch — слить ветку git merge --squash branch - использовать стратегию слияния

git mergetool — запустить визуальный инструмент для разрешения конфликтов после слияния

git log — показать историю коммитов git log --oneline - в одну строку git log --graph --oneline --all с графом веток

git stash - временно сохранить изменения git stash apply - применить git stash list - показать список git stash drop - удалить

git tag v1.0 — создать тег git tag - показать все теги git tag -d v1.0 - удалить git shortlog — краткий лог: показывает авторов и количество их коммитов

git worktree add ../path branch - подключить несколько рабочих деревьев к одному репозиторию: добавить git worktree remove ../path - удалить

git fetch origin - скачать все новые коммиты и ветки с удалённого репозитория, но не сливает их с локальной веткой git pull origin branch - скачать изменения и автоматически слить их с текущей веткой git push - отправить локальные коммиты на удалённый репозиторий

git remote -v - управление удалёнными репозиториями показать git remote add origin <url> - добавить git remote remove origin - удалить

git submodule add <url> path - подключение другого Git-репозитория внутри проекта: добавить git submodule init - инициализировать git submodule update - обновить

git show HEAD - показать детали коммита, включая изменения, автора и сообщение git show a1b2c3d - показать детали коммита, включая изменения, автора и сообщение

git difftool <commit1> <commit2> — запустить визуальный инструмент для сравнения изменений git range-diff <base> <old> <new> - сравнить две серии коммитов git rebase — переписывает историю коммитов, «переносит» ветку на другой базовый коммит; пример: ветка feature с коммитами C и D, основанная на A, при git rebase main (где main: A—B) станет линейной: main: A—B, feature: C“—D“. git describe — описывает текущий коммит через ближайший тег и количество коммитов после него

git revert <commit> — создать новый коммит, который отменяет изменения указанного коммита, безопасно для публичных веток. git apply <patch> — применяет патч к рабочей директории без коммита git cherry-pick <commit> — взять отдельный коммит из другой ветки и применить его к текущей

git blame <file> — показывает, кто и когда изменил каждую строку файла, полезно для поиска авторов изменений.

git bisect start - поиск проблемного коммита git bisect bad - помечаем «плохой» коммит git bisect good <commit> - помечаем «хороший» коммит

git grep -i "Текст" — поиск текста в репозитории git grep "FIXME" HEAD~3 - ищет текст «FIXME» в состоянии репозитория три коммита назад.

git fsck --full - проверяет целостность объектов Git и репозитория git reflog - показывает историю перемещений указателя HEAD и других ссылок, позволяет восстановить потерянные коммиты. git filter-branch — переписывает историю коммитов по определённым правилам (например, удалить файл из всех коммитов). git instaweb --httpd=webrick - запускает локальный веб-сервер для просмотра репозитория через браузер git bundle create repo.bundle --all - создаёт единый файл, который содержит коммиты и ветки, для передачи репозитория без прямого доступа к серверу (при наличии языка Ruby) git archive — создаёт архив (zip/tar) из содержимого репозитория git daemon — запускает свой мини-сервер по протоколу git://. git update-server-info — обновляет метаданные для раздачи репо по обычному HTTP (без умного CGI-сервера).

git cat-file -p <hash>— проверить, игнорируется ли файл по правилам .gitignore. git checkout-index -a — извлечь файлы из индекса в рабочую директорию. git commit-tree <tree> -p <parent> -m "msg" — создать новый коммит из указанного дерева. git count-objects -v — показать статистику по несжатым объектам в .git/objects. git diff-index HEAD — сравнить индекс с последним коммитом. git for-each-ref --format="..." — вывести список ссылок (ветки, теги) с форматированием. git hash-object -w <file> — посчитать SHA-1/SHA-256 хэш файла и записать его как blob в базу объектов. git ls-files — показать все файлы, отслеживаемые Git в индексе. git ls-tree <commit> — показать содержимое дерева (список файлов/папок) указанного коммита. git merge-base A B — найти общий предок двух коммитов. git read-tree <tree> — загрузить дерево в индекс (не в рабочую директорию). git rev-list HEAD — показать список всех коммитов от HEAD вниз. git rev-parse HEAD — вывести точный SHA-1/SHA-256 хэш указанной ссылки. git show-ref — показать все ссылки (refs/heads, refs/tags и т.д.) с их хэшами. git symbolic-ref HEAD — показать или изменить символьную ссылку (например, на главную ветку). git update-index --add <file> — низкоуровневое добавление файла в индекс. git update-ref refs/heads/main <hash> — обновить ссылку (ветку) на другой коммит. git verify-pack -v .git/objects/pack/pack-*.idx — проверить целостность пак-файла. git write-tree — записать текущее состояние индекса как tree-объект и вернуть его хэш.

Клонирование репозитория в локальную папку:

git clone https://github.com/Автор_Username/Pylessons.git J:\GIT\IT_Lessons

Создание нового репозитория на GitHub:

Перейдите на GitHub и войдите в свою учетную запись. Создайте новый репозиторий с именем IT_Lessons. При создании выберите «Public» или «Private» в зависимости от ваших предпочтений.

Привязка локального репозитория к вашему GitHub репозиторию:

cd J:\GIT\IT_Lessons - переход в деректорию

git remote remove origin - Удаляет удалённый репозиторий с именем origin
из вашего локального Git-репозитория. Заменить URL удалённого репозитория

git remote add origin https://github.com/Ваш_Username/IT_Lessons.git - Замените Ваш_Username
на ваш реальный GitHub username.

git push -u origin master - Отправить все изменения в ваш новый репозиторий на GitHub