【问题标题】:Using Source Tree, rebase with conflict, rebase doesn't work after conflict resovled使用源树,有冲突的 rebase,冲突解决后 rebase 不起作用
【发布时间】:2014-11-11 07:49:43
【问题描述】:

我在 Windows 上使用 SourceTree 作为我的 git 工具。

我有一个 main 分支和一个 feature 分支,当我发生冲突时,我无法让 SourceTree 执行变基。

main 看起来像:

c1 -> c2 -> c4 -> c5

功能看起来像:

c1-> c2-> c3

我想改变 feature 的基础,所以它会是:

c1->c2->c4->c5->c3

c3c5 之间存在冲突。我可以解决冲突,但是当我提交更改时,我得到一个 HEAD 标记并查看我的图表,我可以看到 feature 分支没有重新设置基础。

我怎样才能让变基工作?

【问题讨论】:

  • 只是为了检查:你在解决冲突后做了git rebase --continue吗?
  • @Robert - 不,我点击了“提交”按钮。
  • 我不知道 git 的图形界面,但命令行工作流程是解决冲突,使用 git add 将其添加到索引中,然后使用 git rebase --continue 继续变基。
  • 有疑问,去控制台写git status它会指导你(在这种情况下git status会告诉你“解决冲突并输入git merge --continue

标签: git rebase atlassian-sourcetree merge-conflict-resolution


【解决方案1】:

在您解决冲突并将所有更改保存在 暂存区域,而不是单击提交,转到 Actions-> Continue 变基:

在最新版本的源代码树中,当你解决了冲突并在暂存区域中进行了所有更改后,你必须先提交,然后点击Actions -> Continue Rebase

【讨论】:

    【解决方案2】:

    不幸的是, 在变基期间解决冲突的 UX 路径非常糟糕。

    在您解决冲突并在暂存区域中进行所有更改后,不要单击 commit,而是转到 Actions-> Continue Rebase:

    【讨论】:

    • 这意味着你已经解决了冲突,你想继续 rebase
    • 请注意,“将所有更改都放在暂存区”非常重要。我已经解决了所有冲突,但有些更改不在暂存区域。当命令行git rebase --continue 显示正确的警告消息时,Sourcetree 似乎什么也没做。
    • 解决 sourcetree 中的冲突后,bash 中的git rebase --continue 会提示需要git add。虽然这个答案必须是使用 sourcetree 的 GUI 继续 rebase 的预期方式。
    • @Timmmm - 是的,同意 SourceTree 可以更好地帮助用户了解正在发生的事情。
    • 我提出了一个问题,如果您希望在 SourceTree 中对此进行改进,请随时投票/评论:jira.atlassian.com/browse/SRCTREEWIN-7761
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-27
    • 2021-12-27
    • 2011-03-31
    • 2011-12-16
    • 2021-10-16
    相关资源
    最近更新 更多