推送具有不同名称的远程特定分支

时间:2015-06-10 15:05:25

标签: git version-control push

假设我们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,但这不会发生。

我可以一次推送所有远程特定分支,而不必将它们指向正确的远程分支名称吗?

我问,因为有很多分支不时推。

1 个答案:

答案 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将所有将其上游设置的分支推送到特定遥控器的分支。

但最好通过传递你想要在命令行上推送的所有分支来具体说明。很多配置选项会改变推送的行为,因此最好是安全的。