Есть ли способ настроить репозиторий git, так что git pull по умолчанию используется один удаленный и git push по умолчанию для другого? Я знаю, что могу установить оба значения, изменив значение переменной remote в разделе ветвления .git/config, но как это сделать для каждого направления отдельно?
Разный пульт по умолчанию (ветвь отслеживания) для git pull и git push
Ответ 1
Для Git 1.6.4 и более поздних версий установите remote.<name>.pushurl с помощью Git config.
Можно использовать эту функцию, используя протокол только для чтения https: и нажав, используя протокол ssh.
Скажите origin url (remote.origin.url) https://git.example.com/some/repo.git. Он доступен только для чтения, но у вас есть доступ на запись через ssh-based 'URL [email protected]:some/repo.git. Выполните следующую команду, чтобы выполнить перетаскивание протокола ssh:
git config remote.origin.pushurl [email protected]:some/repo.git
		Ответ 2
Так как Git версия 1.7.0, вы можете установить это с помощью:
git remote set-url --push origin https://your.push.com/blah/
		Ответ 3
Так как Git 1.8.3, вы можете использовать опцию remote.pushDefault, чтобы сделать именно то, что вы хотите (то есть иметь разные пулы по умолчанию для pull и push). Вы можете установить параметр так же, как и любой другой; например, чтобы установить его на пульт pushTarget, используйте
git config remote.pushDefault pushTarget
Эта опция будет иметь следующий эффект:
-  
git pullвытащит из удаленного, указанного опциейremoteв соответствующем разделе ветвления в.git/config, а -  
git pushбудет нажимать на удаленный адрес, указанныйremote.pushDefault. 
Обратите внимание, что вам нужно указать имя удаленного, а не URL. Это делает это решение более гибким, чем решение, включающее remote.<name>.pushurl, потому что (например) у вас все еще есть ветки отслеживания для обоих пультов. Независимо от того, нужна ли вам эта гибкость, вам нужно.
Примечания к выпуску говорят, что этот параметр был добавлен специально для поддержки трехсторонних рабочих процессов.
Ответ 4
Из того, что я могу собрать на странице git config man, восходящее репо:
- по умолчанию начало
 -  установлен 
branch.remote -  всегда для 
git pull/fetchиgit pull 
Для данной ветки я не вижу возможности по умолчанию иметь два отдельных пульта.
Ответ 5
Это работает в 1.7.1 и выше -
git remote set-url --push origin [email protected]:username/somerepo.git