使用git和遥控器

时间:2014-02-10 12:03:17

标签: git github

早上好,搜索但没找到,因此问这里。 :)

我遇到如下情况:origin指向一个项目 在github中,fork1指向我在github和fork2上的fork 那是指着配偶的分叉。

因此,如果我这样做

$ git checkout master
# perform various stuff
$ git push

所有更改都将转到origin/master(到目前为止一直很好)。

现在我想拿fork1 master并更新它。我做了

$ git checkout master
$ git pull
$ git checkout -b fork1-master fork1/master
$ git merge
$ git push

我的印象是它应该推动当前的变化 fork1/master。相反,它正在创建一个新的分支:fork1/fork1-master

我在fork1 / master中找到合并的唯一方法就是

$ git checkout master
$ git pull
$ git checkout -b fork1-master fork1/master
$ git merge
$ git push fork1 fork1-master:master

这是预期的行为还是我做错了什么?

谢谢你 的Davide

1 个答案:

答案 0 :(得分:0)

当你

git checkout -b fork1-master fork1/master 

您创建了一个跟踪fork1-master远程分支的fork1/master分支。

为了能够以简单的方式推送git,默认情况下需要(即以简单模式)分支名称将是相同的。这通常是可取的,但在您的情况下是不可取的,因为您显然希望为master保留名称origin/master

所以你要么像你一样继续手动推送,

on fork1-master> git push fork1 HEAD:master

或者你必须告诉git更改默认值并始终推送到上游分支。这可以通过将配置中的 push.default 设置为upstream来完成。

以下是在命令行而不是config上执行此操作的方法:

on fork1-master> git -c push.default=upstream push

它会告诉git识别你在遥控器上跟踪的分支并将你的分支推到那里。