git config --global user.name "Dmitry Ivanov"
git config --global user.email "dmitry@ivanov.ru"
mkdir git && cd git && git init
git add .
git add file.txt -
git commit -m "Я изменил файл"
git commit -am "Я добавил все файлы и сразу закоммитил"
git status - проверка состояния репозитория
git log - подробности коммита
git log -p -более подробно
git show [commit], [file], ... принимает в качестве аргумента любой объект гита
git restore . - откат изменений всех файлов на состояние последнего коммита
git diff - посмотреть изменения НЕ В ИНДЕКСЕ на состояние последнего коммита
git diff --staged изменения УЖЕ В ИНДЕКСЕ (если мы сделали перед этим git add file.txt)
git mv file.txt apps/file1.txt - перемещение/переименование файлов (удобно, так как сразу действует команда git add)
git rm file.txt - удалить файл из индекса
vim .gitignore - файл внутри репозитория для игнорирования гитом не нужных директорий/файлов
git branch -a - посмотреть ВСЕ ветки в репозитории
git branch new-api - создание отдельной ветки в репозитории
git checkout new-api - переключение на новую ветку
git checkout -b new-api - СРАЗУ создать и переключиться на новую ветку
ПЕРВОЕ - Создаем репозиторий на github через web и далее
cd test && git remote add origin https://github.com/dmitry/test.git - заходим в наш локальный репозиторий и добавляем удаленный
git push origin master - отправить изменения локального гит в удаленный
git pull origin master - получить все изменения с удаленного репозитория
git fetch origin master - получить актуальную информацию об указателях на удаленном репозитории
git push --set-upstream origin master - связать локальную ветку master с удаленной origin master
git rebase master - способ перенести изменения из одной ветки в другую. Rebase сжимает все изменения в один «патч». Затем он интегрирует патч в целевую ветку. В отличие от слияния, перемещение перезаписывает историю, потому что она передает завершенную работу из одной ветки в другую
git tag v1 - создать ЛЕГКОВЕСНЫЙ тег для коммита (без доп возможностей)
git tag -a R2020.4 -m "Release 2020.4" - создаем полноценный тег для релиза
git tag - посмотреть все доступные теги
git log ‐‐no-merges - Эта команда показывает всю историю коммитов, но пропускает те, в которых произошли слияния двух веток, или где был решен конфликт фиксации
git commit ‐‐amend - вы можете изменить свой предыдущий коммит, вместо того чтобы создавать новый
git pull ‐‐rebase - заставляет git сначала вытащить изменения, а затем переустановить разблокированные коммиты поверх последней версии удаленной ветки
git add -p - Интерактивное добавление отдельных частей файлов
git stash -p - Интерактивное скрытие отдельных частей файлов
git checkout - -Переключение в предыдущую ветку
git checkout . -Сброс всех локальных изменений
git branch -m old-name new-name -Локальное переименование веток
git push origin :old-name -Переименование веток удаленно(СНАЧАЛА УДАЛЯЕМ)
git push origin new-name -Переименование веток удаленно(ЗАКАЧИВАЕМ ПЕРЕИМЕННОВАННУЮ)
git help workflows - СЕКРЕТНАЯ КОМАНДА!