如何使用SmartGit创建远程分支?

14

如何使用SmartGit创建一个远程分支?

7个回答

12

推送高级技巧对我没用。在SmartGit 3.0.6上,我似乎只能通过以下方式完成:

  • 远程 -> 管理远程 ,然后单击添加并输入远程的详细信息,例如'master','https://github.com/SomeCompany/SomeRepo'。
  • 然后单击拉取。它会说它只能更新子模块等等,点击“确定”。此次提取将输出警告:“没有共同提交”。
  • 现在转到分支 -> 分支管理器 。右键单击本地分支,选择设置已跟踪分支...,然后选择适当的远程分支。
  • 再次提取。这次是正确的。
  • 最后,将更改推送到远程。

对于一个GUI工具来说,让事情变得不太直观是一项相当了不起的成就,但SmartGit在这里做得非常出色。

事件顺序


我想要追踪另一个远程分支(我之前添加的),但在创建新分支时它并未出现(选项为“检出 - > 创建本地分支 - > 跟踪远程分支 - > origin/master”)。最终,我创建了一个未被追踪的本地分支,并使用您的解决方案添加了跟踪(前往“分支”->“分支管理器”。右键单击您的本地分支,然后选择“设置跟踪分支”...)。谢谢。 - kosiara - Bartosz Kosarzycki

8
使用通常的命令行Git,当您使用git clone href://...克隆远程存储库时,会自动创建一个远程引用(默认情况下称为'remote origin')。
或者,您可以使用git remote add origin href://...这样的命令手动添加它。要将分支推送上去,您需要执行git push origin branchname。(在此处查看更详细的示例和说明。)
然而,我可以看到SmartGit有点不同(我自己没有使用过),是基于GUI的。据我所见,“克隆”和“推送”命令可以在SmartGit的“远程”菜单中找到。如果您想添加对远程存储库的引用,是否可以在“远程”菜单中找到“添加”选项?

4

SmartGit并没有明确说明如何实现这一点,但有一种简单的方法可以做到。首先,我假设您知道分支跟踪。一个本地分支通常会跟踪一个远程分支(可能在服务器上)。这使您可以推送和拉取该分支的更改。

诀窍是重置跟踪分支,使其不再跟踪任何内容。要执行此操作,请转到“分支”»“分支管理器”,右键单击您的本地分支,然后单击“重置跟踪分支...”

现在,当您准备将更改作为新的远程分支推送时,请转到“远程”»“高级推送”,并确保“推送当前分支”选项是唯一选择的内容。

当您按下推送按钮时,它会询问您是否要配置跟踪。请按跳过按钮。现在您应该有了一个远程分支。

注意:在推送之前,将本地分支命名为您希望其作为远程分支的名称


2
更新:我刚刚使用了SmartGit 4(新版)。它的操作与上述相同,但是在“远程”下的菜单项只有“推送”,而没有“高级推送”。 - Steve Fallows

3

截至SmartGit 6.5.9(2015年8月):

  • 双击检出分支,您的新分支应该基于该分支(您很可能已经完成了这个步骤)
  • 在分支选项卡上右键单击本地分支,选择(o)自定义Ref。这个字段看起来很短,让我错误地认为它只适用于短的git哈希值,例如92fa03d之类的值,但实际上像feature/JIRA-1234-your-feature-here这样设置新分支名称确实可以按预期工作:

    enter image description here

  • 在分支选项卡中双击新的远程分支(展开)。 SmartGit将像往常一样提供创建正确命名和跟踪的本地分支。


3
在SmartGit 4.5.2中,这很容易。只需转到远程 > 添加,然后输入远程URL即可。

1
当前的SmartGit版本(6.5.8)通过“Push To”命令轻松实现此操作。
  • “Push To”在“分支”选项卡的上下文菜单中(不在窗口级别的“分支”菜单中)。
  • 右键单击要推送的分支即可打开上下文菜单。
  • 只需在“Push To”对话框中输入要创建的远程分支的名称即可。

SmartGit将创建远程分支,将当前分支HEAD推送到它,并将远程分支设置为您的跟踪分支。

(所有这些都假设您想要在当前本地repo的标准origin跟踪repo中创建该分支。)


-1
我不知道你是否可以“创建”远程分支,但我想你可能会在“项目/克隆...”下找到你要找的东西。
(免责声明,我只用过一次,而且是很久以前)
你可以尝试在他们的论坛/讨论列表上询问。发送到支持邮件的邮件他们非常擅长回答。 (帮助/联系支持...

抱歉,不对。Projekt->Clone 要求提供一个新的工作区物理文件位置(这在 Git 中是不必要的,无论有多少分支、标签等)。因此,一定是其他问题。 - Frank N

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