- Внутренее устройство: можно описать как три "дерева"
- Рабочий каталог -
- Проиндексированные файлы - файлы добавленные с помощью git add
- История коммитов - зафиксированные проиндексированные файлы
- git bisect:
- Как объеденить несколько коммитов в один:
- git merge --squash target_branch_name - берет все коммиты из целевой ветки и позволяет их сохранить как один коммит
- git rebase -i HEAD~3 - появится окно операции ребейза, в нем будет все описано что делать для объединения коммитов
- git commit --amend - добавляет в предыдущий коммит, позволяет изменить текст коммита, если хотим без изменений, то добавляем --no-edit
- git reset --soft HEAD~3 - отменить "фиксацию" N последних коммитов и по новой закоммитить все изменения с новым описанием
- git reset: git reset раскрывается в git reset --mixed HEAD. Перемещает указатель HEAD и указатель ветки на заданный коммит. Изменяет состояние всех трех "деревьев" гита.
- --hard - все изменения из "дерева" проиндексированных файлов и "дерева" рабочего каталога, будут потеряны.
- --soft - оставляет изменения в в тех разделах, в которых они были до выполнения команды, сбрасывает только указатели на HEAD и ветку.
- --mixed - все изменения из "дерева" проиндексированных файлов будут перемещены в "дерево" рабочего каталога.
- Как удалить локальные untracked файлы: git clean -i или git clean -f (force)
- ****:
- ****:
- ****:
- ****:
- ****:
- ****:
- ****: