Я использую git для отслеживания контента, который некоторые люди изменяют и делится с другими «только для чтения». «Читатели» могут время от времени вносить изменения, но в основном это не так.
Я хочу разрешить git-«писателям» перебазировать выдвинутые ветви **, если это необходимо, и гарантировать, что «читатели» никогда не получат случайное слияние. Это обычно достаточно просто.
git pull origin +master
Есть один случай, который, кажется, вызывает проблемы. Если читатель вносит локальные изменения, приведенная выше команда объединит . Я хочу, чтобы pull был полностью автоматическим, если читатель не сделал локальных изменений, а если они сделали локальные изменения, он должен остановиться и запросить ввод. Я хочу отслеживать любые изменения в восходящем потоке, при этом внимательно следя за тем, чтобы объединить последующие изменения.
В некотором смысле, я не хочу тянуть. Я хочу точно отслеживать главную ветку.
** (Я знаю, что это не лучшая практика, но она кажется необходимой в нашем случае: у нас есть одна основная ветвь, которая содержит большую часть работы и некоторые тематические ветки для конкретных клиентов с небольшими изменениями, которые необходимо изолировать. Кажется, проще всего часто перебазировать, чтобы поддерживать актуальность тем.)