【问题标题】:How to properly rebase in SourceTree?如何在 SourceTree 中正确地变基?
【发布时间】:2014-09-09 14:25:53
【问题描述】:

Windows 7 上的 SourceTree 1.6.4.0。

假设以下是我的出发点:

 C <- master
/
- A - B <- topic

我想将 topic 重新定位到 ma​​ster
我的目标是:

  C - A - B
  ^       ^
master  topic

但我最终得到:

我可以这样做

git push origin topic -f

我得到了预期的结果,但是在 SourceTree 中执行此操作的正确方法是什么?

【问题讨论】:

    标签: git rebase atlassian-sourcetree


    【解决方案1】:

    更新:SourceTree 1.9.1

    您可以在工具/选项/Git/启用强制推送中启用强制推送。启用后,您可以在“推送”对话框中选中“强制推送”复选框。

    原答案

    你必须强制推送,因为主题分支已经发布并且你正在重写历史。如果您变基,则从原点/主题提交 A 和 B 将被删除。

    如果您不想强制推送,则应该进行合并,特别是如果您有团队成员已经在处理主题。

    您还不能使用适用于 Windows 的 SourceTree 进行强制推送(请参阅 answers at atlassian forums)。 你可以在这里投票支持这个功能:https://jira.atlassian.com/browse/SRCTREEWIN-338

    【讨论】:

    • 我是唯一一个在这个项目上工作的人,使用描述良好的 rebase-then-merge 工作流程。 SourceTree 中是否有通过 GUI 启用强制推送的选项?如果我仍然必须使用命令行,那有点违背程序的目的。
    • @user3858446 不幸的是,SourceTree 中没有这样的选项。见answers at atlassian.com。您可以在这里投票支持此功能:jira.atlassian.com/browse/SRCTREEWIN-338
    • 虽然它没有选项,但您可以创建一个调用批处理文件的自定义操作。这就是我所设置的,感觉非常整合。您可以右键单击提交列表,然后从“自定义操作”子菜单中选择它。
    【解决方案2】:

    更新:SourceTree 版本 2.6.3 (134)(适用于 Mac)

    转到SourceTree/Preferences/Advanced 并点击“高级”对话框顶部的“允许强制推送”复选框。

    这允许在推送提交时单击推送对话框中的强制推送。

    以前的版本在“常规”对话框底部的SourceTree/Preferences/General 上有此内容。

    【讨论】:

    • 想必你指的是mac?
    【解决方案3】:

    更新:SourceTree 版本 2.4.8.0 (Windows 10)

    转到SourceTree --&gt; Tools --&gt; Options 选择Git 并检查Enable Force Push(见截图)

    【讨论】:

      猜你喜欢
      • 2012-08-12
      • 2023-02-05
      • 2019-01-31
      • 1970-01-01
      • 2015-10-11
      • 2021-11-29
      • 1970-01-01
      • 1970-01-01
      • 2021-02-12
      相关资源
      最近更新 更多