LINUX.ORG.RU

Git: есть ли способ определить состояние forced-update?

 ,


0

1

Использую git вместо rsync для синхронизации сырцов на удаленной машине. Ну и часто доводится делать git push -f buildbox на локальной машине (естественно config receive.denyCurrentBranch = warn).

Чтоб потом привести рабочее дерево на удаленнй машине к желаемому состоянию делаю git reset --hard HEAD. Но иногда забываю, и запускаю компиляцию старой версии кода. Думаю написать алиас/фунцию которая бы делала reset при запуске билда если задетектит, что был сделан forced update.

Вопрос: как сделать проверку на forced update? Или может есть другой подход осуществить то, что я хочу?

★★★★★

Последнее исправление: KennyMinigun (всего исправлений: 1)

Может это поможет:

receive.denyCurrentBranch = updateInstead

Обновляет checkout-ную ветку на remote при push-е туда(настройка, естественно, на remote должна быть). Правда я не знаю, как оно с force сочетается, но вроде должно работать

anonymous
()
Ответ на: комментарий от Miguel

Тоже вариант. Но поскольку нужен reset --hard то стремно.

KennyMinigun ★★★★★
() автор топика

Если тебе нужно просто всегда использовать новую версию, то проще и логичнее использовать git fetch remote и затем reset --hard remote/branch.

Если же нужно какое-либо ветвление в зависимости от того, была-ли переписана история на remote, т.е. если нужно понять выполняется ли fast-forward от HEAD до remote/branch, то git fetch remote и затем git merge-base --is-ancestor remote/branch HEAD

Deleted
()
Ответ на: комментарий от anonymous

receive.denyCurrentBranch = updateInstead

Отлично работает, еще раз спасибо.

KennyMinigun ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.