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