fix(ops): update не делает shallow-fetch и объясняет конфликт ветки
Частичный fetch переводил обычный клон в shallow, после чего pull --ff-only падал с «Not possible to fast-forward» без подсказки, что делать.
This commit is contained in:
+8
-3
@@ -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}" \
|
||||||
|
|||||||
Reference in New Issue
Block a user