Git отключить нажатие из локального репозитория

У меня есть репозиторий с некоторым основным кодом в нем, и для каждого клиента я хочу клонировать его, чтобы я мог делать git pull каждый раз, когда клиент хочет перейти на новейшую функциональность.

В интересах не вникать в вещи и делать изменения, которые видит только одна компания, есть ли способ разрешить выборки на основе локального репозитория? Я все еще хочу иметь возможность вносить изменения в основное репо из среды моего dev, но не хочу, чтобы производственные машины могли нажать.

Ответ 1

Укажите несуществующий pushurl в удаленном разделе хранилища клонов-источников (называемый источником) в файле .git/config. Пример:

[remote "origin"]
        fetch = +refs/heads/*:refs/remotes/origin/*
        url = <url>
        pushurl = www.non-existing-url.com

Или, если вам не нравится редактировать конфигурационный файл репозитория, вы можете ввести:

$ git config remote.origin.pushurl www.non-existing.com

При нажатии вы получите сообщение об ошибке, например:

$ git push
fatal: 'www.non-existing-url.com' does not appear to be a git repository
fatal: The remote end hung up unexpectedly

Конечно, вам нужно будет отредактировать файл конфигурации каждого клонированного репозитория.

Ответ 2

Я считаю, что удаленная команда более полезна, поэтому мне не нужно напрямую связываться с конфигурациями.

git remote set-url --push origin www.non-existing-url.com

должен работать также