假设我的.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
回购。
有没有办法从upstream
获取git pull ,但推送到origin
,所有这些都无需指定repos / branches命令行?
答案 0 :(得分:2)
您可以拥有一个与其获取网址具有不同推送网址的遥控器。如果你运行
git remote set-url origin git@github.com:dhh/app.git
git remote set-url --push origin git@github.com:asymmetric/app.git
第一个命令设置origin
的提取网址,第二个命令设置origin
的推送网址。由于默认使用origin
,因此您可以获得git pull
和git push
所需的行为。
答案 1 :(得分:0)
不,这是不可能的。
如果查看配置文件:
[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
1}}。
你能做的最接近的是别名。