Объединить и перенести в 2 разных репо по умолчанию - PullRequest
2 голосов
/ 01 января 2012

Допустим, мой .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 будут работать с originrepo.

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

Ответы [ 2 ]

2 голосов
/ 02 января 2012

У вас может быть один пульт, который имеет другой 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-URL для origin. Поскольку origin используется по умолчанию, это позволит вам иметь поведение, которое вы хотите для git pull и git push.

0 голосов
/ 01 января 2012

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

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

[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.

Ближайшее, что вы можете сделатьэто псевдоним.

...