Найти в Дзене
32 подписчика

Gitflic - принудительная перезапись локальной ветки master (git pull --all -force)


git fetch --all
git branch backup-master
git reset --hard origin/master
git pull --all

Пояснение:
# Загружает все изменения из всех удалённых репозиториев (например, origin),
# но не сливает их в локальные ветки — только обновляет ссылки вроде origin/master
git fetch --all

# Создаёт новую локальную ветку 'backup-master', указывающую на текущее состояние HEAD
# (обычно это текущая ветка, например, master или main — будьте осторожны: если вы не на master,
# backup-master сохранит не master, а текущую ветку!)
git branch backup-master

# Безоговорочно сбрасывает текущую ветку (HEAD) на состояние удалённой ветки origin/master:
# все локальные коммиты, не попавшие в origin/master, будут потеряны (если не сохранены в другой ветке)
git reset --hard origin/master

# Выполняет 'git fetch --all' (уже было выше) + пытается сделать 'merge' для всех отслеживаемых веток.
# Однако флаг --all у 'git pull' не делает merge всех веток — он fetch’ит все удалёнки и затем
# делает pull *только для текущей ветки*. Остальные ветки не обновляются автоматически.
# Чаще всего это избыточно после fetch + reset — особенно если цель была синхронизироваться с origin/master.
git pull --all

Заметка:
git branch backup-master создаёт ветку от текущего HEAD, а не от master, если вы сейчас не на master.
Чтобы гарантированно сохранить старое состояние master, лучше сделать:
git branch backup-master master  # явно от ветки master

Gitflic -  принудительная перезапись локальной ветки master (git pull --all -force)  git fetch --all git branch backup-master git reset --hard origin/master git pull --all  Пояснение: # Загружает все
1 минута