假设我们origin
有一个名为master
的分支,该分支将被检出;
>> git checkout master
Switched to branch 'master'
Your branch is up-to-date with 'origin/master'
现在我添加了一个名为fork
的分支远程master
,该分支将被检出;
>> git checkout -b fork-master fork/master
Switched to branch 'fork-master'
Your branch is up-to-date with 'fork/master'
这清楚地知道给定分支属于哪个远程,它甚至引用了正确的原点。
让我们说我想推动原点我做这件事;
>> git push
哪会更新origin / master并进行所有更改( duh )。
以下是推送的两个例子;
Example 1 **Correct!**;
>> git push fork fork-master:master
Example 2 **Fails**;
>> git push fork --all
这会自动将所有fork
分支推送到origin
,但分支master
将被拒绝(如果进行了更改)。
我认为示例#2会将fork-master
推送到fork/master
,但这不会发生。
我可以一次推送所有远程特定分支,而不必将它们指向正确的远程分支名称吗?
我问,因为有很多分支不时推。
答案 0 :(得分:2)
将default.push配置为上游
git config default.push upstream
然后,设置本地分支以跟踪相应的远程分支:
git checkout --track -b fork-master fork/master
使用git branch命令验证每个分支的当前上游:
git branch -vv
然后,您可以使用git push <remote> <branch>
自动将每个branch
推送到branch@{upstream}
:
git push fork fork-master fork-test fork-updates fork-123
我担心没有办法告诉Git将所有将其上游设置的分支推送到特定遥控器的分支。
但最好通过传递你想要在命令行上推送的所有分支来具体说明。很多配置选项会改变推送的行为,因此最好是安全的。