Объединить и перенести в 2 разных репо по умолчанию

Скажем так .git/config выглядит так:

[remote "origin"]
    url = git@github.com:asymmetric/app.git
    fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
    remote = origin
    merge = refs/heads/master
[remote "upstream"]
    url = git@github.com:dhh/app.git
    fetch = +refs/heads/*:refs/remotes/origin/*

Теперь, когда я нахожусь на master филиал, оба git pull а также git push будет работать с origin Сделки РЕПО.

Есть ли способ, чтобы git pull от upstream, но подтолкнуть к originвсе без необходимости указывать репо / ветки в командной строке?

2 ответа

Решение

У вас может быть один пульт дистанционного управления, который имеет другой URL-адрес push-адреса из своего URL-адреса извлечения. Если вы бежите

git remote set-url origin git@github.com:dhh/app.git
git remote set-url --push origin git@github.com:asymmetric/app.git

первая команда устанавливает URL для получения origin а второй устанавливает push-адрес для origin, поскольку origin используется по умолчанию, это позволит вам иметь поведение, которое вы хотите для git pull а также git push,

Нет, это невозможно.

Если вы посмотрите на свой файл конфигурации:

[branch "master"]
    remote = origin
    merge = refs/heads/master

Вы можете обобщить это на:

[branch "x"]
    remote = r
    merge = refs/heads/y

Это значит, если вы находитесь на ветке x и делать git push/pull (или сделать git push/pull x откуда угодно, будет действовать на ветке y удаленного r,

Самое близкое, что вы можете сделать, это псевдоним.

Другие вопросы по тегам