当前位置: 首页 > 知识库问答 >
问题:

当前分支没有跟踪信息。请指定要与哪个分支合并

顾烨磊
2023-03-14

因此,我使用Jira创建了一个分支,并在本地系统中查看了该分支。现在我正在尝试对我的本地系统进行git拉动,但我得到了这样的信息

There is no tracking information for the current branch.
Please specify which branch you want to merge with.
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> feature/branch-name                                                                                                                                        mark-violation

我需要做什么?我看过这个链接,但我不清楚。

共有1个答案

庄经国
2023-03-14

这个故事里有两个怪人。我们叫他们吉拉的Git和你的本地Git吧。

>

  • 当您在Jira的Git上创建一个分支时,您就是这样做的:在Jira的Git上创建一个分支。

    当您在本地Git上说Git checkout-b branch-name时,您就在本地Git上创建了一个分支。

    git branch -u origin/branchname branchname
    

    -u表示“上游设置”,并将本地分支BranchName绑定到远程跟踪分支Origin/BranchName(假设Origin是指定JIRA的Git的远程的本地名称)。请注意,这正是Git告诉您应该说的时候已经告诉您要做的

    git branch --set-upstream-to=origin/<branch> feature/branch-name
    

    你本来可以这么做的,现在就到家了。

    注意,这个故事中实际上有三个分支:Jira Git上的分支、本地Git中的远程跟踪分支和本地Git中的本地分支。Jira Git上的分支和本地Git中的分支通常具有相同的名称,比如branchname;本地Git中的远程跟踪分支通常在该名称前面加上起源名称,比如origin/branchname

    >

  • 当您说Git Fetch时,您将Jira的Git分支向下同步到本地远程跟踪分支。因此,您通常不需要告诉Git如何将远程跟踪分支绑定到Jira Git;它已经知道如何做到这一点,因为当您说git fetch时,它是这样为您设置的。

    当您说Git checkout的分支名称恰好与远程跟踪分支的名称匹配时,Git假定您真正的意思是“创建一个本地分支并将其绑定到同名的远程跟踪分支。”所以它就是这样做的。这就是为什么提取然后结账本来是正确的事情。相反,您手动创建了一个本地分支,因此它与远程跟踪分支没有关系。

    当您说Git pull时,您将Jira Git分支向下同步到本地远程跟踪分支和相应的本地分支。第一步,涉及远程跟踪部门,只需复印一份;但第二步将(默认情况下)远程跟踪分支合并到本地分支中。

    当您说Git Push时,您将以另一种方式同步:本地分支合并到远程跟踪分支中,然后再向上合并到相应的Jira Git分支中。那些合并被保证是快进合并,因为如果它们不是,Git会抵制;你可以通过使用“武力”来克服那种阻力。如果在本地分支未绑定到远程跟踪分支时使用git push,则可以通过添加-u属性来绑定它:git push-u origin branchname是对本地创建的分支执行第一次推送的常用方法,之后就不需要该分支的-u了,因为已经建立了关联。

    我已经做了很大的简化,但希望这足以给你一个更准确的心理图片,一般情况下发生的事情。

  •  类似资料:
    • 我使用github的时间相对较短,并且一直使用客户端执行提交和拉取。我决定从昨天的git bash开始尝试它,并且我成功地创建了一个新的repo和提交的文件。 今天,我从另一台计算机上对存储库进行了更改,我提交了更改,现在我回到家里,执行了来更新我的本地版本,我得到了以下信息: 这次回购的唯一贡献者是我,没有分支(只有一个主人)。我在windows上执行了git Bash中的pull: 我做错了什

    • 对于一个新项目,我想使用Jenkins CI的新管道功能。我们的Git存储库中有几个分支,应该以同样的方式进行测试。它还应该自动跟踪和处理新的分支。因此,我创建了一个多分支管道作业。但它的配置有两个问题: 1) 为了被Jenkins标记为有效,分行需要一个“Jenkinsfile”。如果这不存在,詹金斯将忽略该分支。有没有办法标记与模式匹配的所有分支,而不需要在其中包含此文件? 2) 每个分支都应

    • 然后我试了一下: 有什么提示吗?

    • 我正在使用JGit创建一个新的git存储库,文件夹中已经存在的所有内容都另存为new branch。 我正在用 (默认情况下,master分支是在上面的语句之后创建的,所以我将其重命名为Backup分支)。 问题是当我推后支时,它被推了,但我无法建立远程跟踪。 从终端:如果我使用结果是 根据链接,让现有的Git分支跟踪远程分支?我可以使用终端中的来指定推送backupbranch后的任何时间。 如

    • Git 有几个实现大部的分支及合并功能的实用命令。 git branch git branch 命令实际上是某种程度上的分支管理工具。 它可以列出你所有的分支、创建新分支、删除分支及重命名分支。 Git 分支 一节主要是为 branch 命令来设计的,它贯穿了整个章节。 首先,我们在 分支创建 一节中介绍了它,然后我们在 分支管理 一节中介绍了它的其它大部分特性(列举及删除)。 在 跟踪分支 一节

    • 分支是我最喜欢的 Git 特性之一。如果你用过其他版本控制系统,把你所知的分支给忘记,倒可能更有帮助些 ——事实上,以我们使用分支的方式,把 Git 的分支看作 上下文 反而更合适。当你检出分支时,你可以在两三个不同的分支之间来回切换。 简而言之,你可以执行 git branch (branchname) 来创建分支,使用 git checkout (branchname) 命令切换到该分支,在该