我一直在使用来自两台不同机器的远程分支。现在,我尝试使用对另一台计算机(在分支内)所做的更改来更新一台计算机。
请注意,git在执行
后会告诉我git pull
与
git push
一切都没问题之前。 因此,在“ git pull”告诉我之后:
There is no tracking information for the current branch.
Please specify which branch you want to rebase against.
See git-pull(1) for details
git pull <remote> <branch>
If you wish to set tracking information for this branch you can do so with:
git branch --set-upstream-to=origin/<branch> MyBranchName
基本上,这里关于这个问题的所有答案对我来说都是无用的,因为它们假设的是我不知道的事情。
因此,只需回答解决此冲突所需输入的内容。 我已经对git的建议感到困惑。我不知道
origin/<branch>
是一种选择,或者如果我必须像提供的那样输入。
我认为以某种方式,远程中可能有与本地分支名称关联的不同分支名称。但是我仍然感到困惑,为什么我应该提供多个名称(甚至没有一个)。那么为什么要输入的内容比:
git branch --set-upstream-to=MyBranchName
甚至:
git branch --set-upstream-to-default
与此同时,我已经使用git三年了,这不是我第一次遇到这个问题。
一个好的答案可能是:
输入
git branch --set-upstream-to=origin MyBranchName
由于某种原因或其他原因,每次要从分支中拉出时都必须执行此操作(但可以使用push进行操作)。
答案 0 :(得分:0)
请记住,遥控器具有名称。通常,如果您只有一个遥控器,则将其命名为origin
,但是此名称完全是任意的,由您决定。
好吧,所以当git在类似的方括号中显示某些内容时,意味着“在此处输入真实姓名”。因此,如果将远程称为origin
,将分支称为mybranch
,则git会告诉您您可能想说git pull origin mybranch
。
是否还要在分支上设置上游明确取决于您的工作流程。通常这是一个很好的主意。
答案 1 :(得分:-1)
所以看来要从分支中拉出,需要指定
git pull origin YourBranchNameToPullFrom
“起源”是一个魔术字,需要像显示的那样放在那里。 或者,可以使用一些脚本从git中提取“ YourBranchNameToPullFrom”:
git pull origin `git status|grep 'On branch '|sed -e 's/^On branch //'`