如何获取git以按名称自动匹配远程分支?

时间:2018-08-08 07:47:45

标签: git

我经常使用克隆的存储库,有一个“原始”(我)和“上游”(原始来源)。我总是从github上克隆“原始”存储库以进行处理并创建PR,并且有时需要从“上游”中提取信息以与正在进行的最新更改保持同步。

git clone <origin uri>之后,我可以做

git push/pull

自分支已被跟踪以来未指定其分支;但是在另一台遥控器上

git pull upstream

例如在master分支上,我希望git实际完成

git pull upstream master

代替:

You asked to pull from the remote 'upstream', but did not specify
a branch. Because this is not the default configured remote
for your current branch, you must specify a branch on the command line.

我知道我可以配置跟踪遥控器,但是我想知道只要分支名称相同,它是否可以自动进行。

3 个答案:

答案 0 :(得分:0)

  

您要求从远程“上游”拉出,但未指定   科。因为这不是您的默认配置遥控器   当前分支,您必须在命令行上指定一个分支。

看看消息,第一件事是您尚未将upstream配置为默认遥控器。因此,首先,您需要将其设置为默认遥控器,例如:

git config branch.branch_name.remote upstream

现在,您需要指定一个要从中提取提交的分支。您可以通过运行

来指定 git config branch.branch_name.merge refs/heads/branch_name

希望有帮助。

答案 1 :(得分:0)

只需使用--track--set-upstream-to(-u)

$ git branch --track master upstream/master

对于当前分支:

$ git branch -u upstream/master
$ git branch --set-upstream-to=upstream/master

这会将远程跟踪分支upstream/master分配给您的master分支,以便在下一个git pull调用中自动获取它。

在手册页中:

   -t, --track
       When creating a new branch, set up branch.<name>.remote and branch.<name>.merge
       configuration entries to mark the start-point branch as "upstream" from the new
       branch. This configuration will tell git to show the relationship between the 
       two branches in git status and git branch -v. Furthermore, it directs git pull
       without arguments to pull from the upstream when the new branch is checked out.

   -u <upstream>, --set-upstream-to=<upstream>
       Set up <branchname>'s tracking information so <upstream> is considered 
       <branchname>'s upstream branch. If no <branchname> is specified, then it defaults
       to the current branch.

答案 2 :(得分:0)

您可以使用以下配置,因此无论何时从远程签出新分支,都将自动对其进行跟踪,而无需使用--set-upstream-to--track

设置跟踪
git config --global branch.autosetupmerge true