【问题标题】:Is there a command to say which branch is ours or theirs?有命令说哪个分支是我们的还是他们的?
【发布时间】:2020-01-09 04:07:38
【问题描述】:

网络上有很多 SO 答案和教程说哪个分支是 我们的 和哪个分支是 他们的 之间存在差异,这取决于它是否是变基或合并,并解释原因,通常使用方便的表格,如手册页和 online docs(无表格)。

问题是,我不想记住。我不喜欢计算机应该能够告诉我或简单地显示的琐碎事情的认知负荷。

是否有包含此信息的命令或 ENV var 或类似的东西?(搜索我的 env 没有任何结果,但也许我需要先启用某些东西)。我可以在提示中坚持的那种东西是完美的。如果它可以处理 rebase 中间的冲突,其中目标分支成为对到达的提交的引用,那就更好了。

从对此的困惑和警告的数量来看,如果有的话,您将通过分享来帮助每个人。

任何帮助或见解将不胜感激。

【问题讨论】:

  • 从技术上讲,一切都是你的。问题是棘手的,因为在 rebase 中发生的冲突中,您是在复制的提交之上复制提交,所以即使您想说一些原始提交是“你的”而其他一些原始提交是“他们的”,现在“你的”和“他们的”已经混合在一起了。但是,--oursHEAD 基本相同(由于git stash apply 而发生的冲突除外)。
  • @torek 这很有趣,谢谢。

标签: git merge rebase


【解决方案1】:

正如我explained here:

HEAD 所指的都是“我们的”

VSCode 是最能明确我们与他们的区别的工具。
见“Resolve merge conflicts

  • 当前的变化是我们的。
  • 即将到来的变化是他们的。

【讨论】:

    【解决方案2】:

    当您将A 合并到B 时,其中ABcommit-ish(多个分支),B 是我们的,A 是他们的。作为提交,B = HEADA = MERGE_HEAD

    当您将A 重新设置为B 时,B 是我们的,A 是他们的。作为提交,B = HEADA = REBASE_HEAD

    当您选择 AB 时,B 是我们的,A 是他们的。作为提交,B = HEADA = CHERRY_PICK_HEAD

    您可以对HEADMERGE_HEADREBASE_HEADCHERRY_PICK_HEAD 使用命令,例如git show MERGE_HEAD

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-09-23
      • 2012-04-02
      • 1970-01-01
      • 2011-03-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多