Git 101
Типичный workflow базового уровня
git clone <указатель на репозиторий> - init в таком случае не требуется
git fetch (скачать изменения с сервера)
git merge (слить изменения в локальную копию)
эти две команды заменяются одной: git pull (по ситуации)
git status или status -s (короткий формат)
git add .
git commit
-a (all)
-m "Quick description"
git push origin main
Отмена локальных изменений
Отменить коммит, но сохранить изменения в коде:
git reset --soft HEAD
Отменить два коммита вместе с изменениями кода:
git reset --hard HEAD~2
Отменить изменения конкретного файла:
git checkout <имя_файла>
Отмена изменений на remote
Откатиться до конкретного коммита:
git reset --hard <commit-hash>
...а затем forced push:
git push -f origin main
Пара слов про .gitignore
Если .gitignore был добавлен ДО версионирования (создания) конкретных файлов:
git add .
Проверить, какие файлы былидобавлены к индексации, и затем:
git reset -- <paths>
Чтобы unstage те файлы, которые не надо добавлять к следующей версии, и добавить их в .gitignore.
Если .gitignore был добавлен ПОСЛЕ версионирования некоторых файлов:
git rm --cached -- <paths>
Индекс будет пересчитан, но исходные файлы останутся нетронуты.
Пара слов про CR и LF
Набор команд, чтобы поменять правила обработки CR/LF и пересчитать индекс:
git config --local core.autocrlf input ИЛИ auto
git reset --hard
git checkout -- .
При работе в кросс-платформенной команде рекомендуется использование и настройка файла .gitattributes (ссылка на SO и статья в оф.документации).
Какие настройки можно проверить через консоль:
git config --get --show-scope core.eol
git config --get --show-scope core.autocrlf
git config --get --show-scope core.safecrlf
git config --get --show-scope core.whitespace
-- (двойной дефис) - это метка конца опций в CLI. Используется, чтобы не произошло случайных коллизий между опциями и последующим аргументом при вводе команды.
Просмотр истории коммитов и деревьев
Вариант 1. Простой лог
git log
Вариант 2. Красивый список
git log --graph --pretty=oneline --abbrev-commit --all --decorate
Вариант 3. git adog :)
git config --global alias.adog "log --all --decorate --oneline --graph"
git adog
Ссылки
Основное:
Комментарии
Отправить комментарий