Новые команды этого урока
git mergetool
Запустить внешний инструмент для визуального разрешения конфликтов слияния. Git открывает настроенный инструмент (vimdiff, meld, kdiff3 и другие) с тремя версиями файла: исходная (base), ваша (local) и их (remote).
# Запустить инструмент для всех конфликтующих файлов
git mergetool
# Запустить для конкретного файла
git mergetool path/to/conflict-file.txt
# Указать инструмент явно
git mergetool --tool=vimdiff
# Настроить инструмент по умолчанию
git config --global merge.tool vimdiff
git log --merge
Показать список коммитов, конфликтующих между объединяющимися ветвями. Помогает понять, какие именно изменения вызвали конфликт.
git log --merge
git log --merge --oneline # компактный вид
git log --merge -p # с diff каждого конфликтующего коммита
git merge --continue
Завершить слияние после ручного разрешения всех конфликтов. Аналог git commit в процессе merge.
# После разрешения конфликта:
git add resolved-file.txt # добавить в индекс
git merge --continue # завершить слияние
# Альтернатива:
git add resolved-file.txt
git commit # создаст merge-коммит
Ранее изученные команды (используются в уроке)
git init— инициализировать репозиторийgit add— добавить файл в индекс;git add <conflicted-file>— пометить конфликт как разрешённыйgit commit— создать коммит;git commit -am "..."— добавить и закоммититьgit checkout— переключить ветку;git checkout -b branch— создать и переключитьсяgit merge— слить ветки;git merge branch_namegit status— показать статус; в режиме конфликта показываетboth modifiedgit diff— показать изменения; при конфликте показывает маркеры <<<<<<<git log— история коммитов
Linux-команды в контексте миграции monorepo
find— поиск файлов и директорий;find . -type d -name ".git" -exec rm -rf {} +— удалить все .git (ОПАСНО!)