Ответ 1
Я не уверен, что вы имеете в виду, так как ваш пример включает в себя 2 одинаковых URL, но URL-адреса для push и pull могут отличаться из-за:
- проблема протокола: см. Git протоколы: URL будет немного отличаться, потому что не каждый протокол поддерживает push (например, http, за исключением smart http)
- промежуточные репозитории: вы можете нажать на другой репозиторий, который будет "средним человеком" между истинным "центральным" репо и вашим. Затем могут выполняться операции с сертификатами (например, через крюк после приема), и фиксация будет затем перенесена на "фактический" удаленный оттуда, если эти операции (например, "модульное тестирование", "статический анализ кода"... ) успешно проходят.
Например, такое использование см. В следующих разделах: " Какое самое умное использование исходного репозитория, который вы когда-либо видели?.
Как говорится, зафиксировать 697f652 (Git 2.3.1+, Q1/Q2 2015) Git сопровождающий Junio C Hamano (gitster
) упоминают:
Кажется, распространенной ошибкой является попытка использовать один удаленный (например, "источник" ) для извлечения из одного места (т.е.
upstream
) при нажатии на другой (т.е. точка публикации).Это никогда не будет удовлетворительно работать, и легко понять, почему, если вы думаете о том, что
refs/remotes/origin/*
будет означать в таком мире. Это принципиально не может отражать реальность.
Если он соответствует состоянию вашего восходящего потока, он не может соответствовать тому, что у вас есть опубликовано и наоборот.В документации не было ясно, что "
remote.<nick>.pushURL
" и "remote.<nick>.URL
" там, чтобы назвать тот же репозиторий, доступ к которому осуществляется через разные транспорты, не два отдельных репозитория.