fix(ops): update не делает shallow-fetch и объясняет конфликт ветки

Частичный fetch переводил обычный клон в shallow, после чего pull --ff-only
падал с «Not possible to fast-forward» без подсказки, что делать.
This commit is contained in:
2026-09-22 20:49:29 +03:00
parent e97f260113
commit 63466fb75b
+8 -3
View File
@@ -59,11 +59,16 @@ if [ "$APP_IMAGE" = "glchat:local" ] || [ -z "${APP_IMAGE:-}" ]; then
REPO_DIR="${GLCHAT_REPO_DIR:-$REPO_DIR_DEFAULT}" REPO_DIR="${GLCHAT_REPO_DIR:-$REPO_DIR_DEFAULT}"
if [ -d "${REPO_DIR}/.git" ]; then if [ -d "${REPO_DIR}/.git" ]; then
log "обновляем исходники в ${REPO_DIR}" log "обновляем исходники в ${REPO_DIR}"
git -C "$REPO_DIR" fetch --tags --depth 1 origin # Без --depth: частичный fetch переводит обычный клон в shallow, и
# следующий `pull --ff-only` падает с «Not possible to fast-forward».
git -C "$REPO_DIR" fetch --tags origin ||
die "не удалось получить обновления; проверьте доступ к ${REPO_DIR}"
if [ -n "$TARGET_VERSION" ]; then if [ -n "$TARGET_VERSION" ]; then
git -C "$REPO_DIR" checkout "$TARGET_VERSION" git -C "$REPO_DIR" checkout "$TARGET_VERSION" ||
die "не удалось переключиться на ${TARGET_VERSION}"
else else
git -C "$REPO_DIR" pull --ff-only git -C "$REPO_DIR" pull --ff-only ||
die "локальные изменения мешают обновлению: git -C ${REPO_DIR} reset --hard origin/main"
fi fi
log "пересобираем образ" log "пересобираем образ"
docker build -t "${APP_IMAGE:-glchat:local}" \ docker build -t "${APP_IMAGE:-glchat:local}" \