Eclipse egit: 如何将远程分支变为本地分支

4
在JIRA中,我们现在可以为每个问题“创建分支”。这很好,但是这些分支只能在远程创建。如果开发人员切换到此远程分支,则无法将任何内容推送到该分支。这似乎是因为该分支未导入“本地”git存储库。有没有什么办法解决这个问题?请注意,当从Eclipse创建分支时,所有这些都不会造成任何问题。出于某种原因,没有“推送”选项:

enter image description here

git配置:

[core]
    symlinks = false
    repositoryformatversion = 0
    filemode = false
    logallrefupdates = true
[remote "origin"]
    url = https://[username]@bitbucket.org/[project-name]/[project-name].git
    fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
    remote = origin
    merge = refs/heads/master

...紧随其后的是许多其他分支,但没有一个是我想使用的。

当我尝试检出一个分支时,这里是Photon中Branches视图向我展示的内容:

Note the absence of the ellipsis after the "Check Out" option

请注意,“Check Out”选项后面没有省略号,这意味着我不能选择“作为本地分支检出”。
在Ubuntu上安装Photon时,我看到了省略号,并且一切都像描述的那样正常工作。但是在Windows上并非如此。
当然,Linux上的Eclipse还有很多其他怪癖和错误,所以我不会经常使用它。我已经老了,记得人们相信有趣的抽象理想,比如“平台独立性”。叹气...

1
你可以将任何东西推送到(已经存在的)远程分支。如果您想要推送当前检出的修订版本(因为您没有创建本地分支,因此在 分离头部上工作),则可以使用 git on cli 这样做: git push whatever-remote HEAD:remote-branch-name。我不是说这是我的工作方式(比如说不为一个 ticket 创建本地分支...只是说仍然有可能将您的本地工作推送到远程)。 - eftshift0
谢谢,但我真的想避免所有这些命令行。我有点讨厌egit,但它比记住神奇的咒语要好! - Marc
1
使用“分支”对话框(Ctrl+3 并输入“branch”)将远程分支作为本地分支检出,并将远程分支配置为上游分支。然后您可以进行更改,提交并推送到远程上游分支。 - howlger
CTRL-3!太棒了!至于“分支”对话框,这正是我以前做过的,但这样做会导致分支被签出(我猜),但没有任何推送代码的能力,如上所述。 - Marc
事实上,在此对话框中,远程分支仍然旁边有一个小黑色复选标记,我猜想这表示它以某种方式被先前检出过。 - Marc
2个回答

4
请确保在您的配置中勾选了这些设置。否则,将没有对你新检出的分支进行操作的对话框: GIT-Checkout的设置

1

看起来您处于分离头指针状态: 黑色勾选标记没有在本地分支上,因为您已经检出了提交或者标签。

如果您想对远程分支进行更改,请先创建一个以远程分支作为上游分支的本地分支 (您不能直接在远程分支上进行更改):

  1. 右键单击 远程分支,选择 Check Out...
    打开 Branches 对话框 (Ctrl+3 并输入 branch),选择远程分支并单击 Check Out...)
  2. 在以下对话框中,单击 作为新本地分支签出 (而不是 签出提交 ,这会导致分离头指针状态)

但是我无法进行第二步,因为没有“下一个对话框”。我右键单击相关的远程分支,或在“分支”对话框中选择它,然后看到“检出”选项,但当我选择此选项时,该分支仅以奇怪的分离头状态检出,我无法再进行其他操作。 - Marc
1
你使用的是哪个 EGit 版本(我使用的是 EGit 5.0)?或者可能是配置问题:你为拉取和推送配置了什么 ref 映射? - howlger
我正在使用适用于JavaScript和Web开发人员的Eclipse版本:Neon.3 Release(4.6.3) 构建ID:20170314-1500但是EGit 4.6.1。更新失败,显示“无法完成请求”.... 唉。现在正在更加努力尝试。 - Marc
在尝试多次升级Neon中的EGit失败后,我最终放弃并安装了Photon。现在我似乎有了一个“Eclipse的Git集成”插件5.0.0.201806131550-r。好吧...我现在看到了“Check Out”(如您所示,用两个单词)....但是仍然没有对话框在选择远程分支时出现。 - Marc
奇怪。你能分享一下Git仓库的配置吗(特别是ref映射)? - howlger
好的,git配置已添加到上面的帖子中。 - Marc

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接