【问题标题】:git - confusion over terminology, "theirs" vs "mine"git - 术语混淆,“他们的”与“我的”
【发布时间】:2015-10-27 07:49:39
【问题描述】:

我完全不知道我的和他们的意思是什么。在这种特定情况下,我有一个功能分支,我刚刚通过 rebase -i 压缩了大约 80 个提交,并将其合并回 develop。我遇到了一些冲突,我只想使用我的功能分支上的任何代码。我尝试了“我的”,但实际上似乎适得其反。

有人能解释一下这个术语吗?

【问题讨论】:

    标签: git git-branch git-flow


    【解决方案1】:

    ourstheirs 是一个有点混乱的概念;执行变基时加剧:

    在执行合并时,ours 指的是您要合并的分支theirs 是指您要合并的分支来自。因此,如果您试图解决 merge 中的冲突:

    • 使用ours 接受来自我们当前所在分支的更改
    • 使用theirs 接受来自我们正在合并的分支的更改。

    这很有道理,对吧?

    变基时,ourstheirs 被反转。将选取文件重新设置为“分离”的 HEAD 分支。目标是 HEAD 分支,merge-from 是变基之前的原始分支。这使得:

    • --ours rebase 正在构建的匿名者,以及
    • --theirs 被改建的那个;

    也就是说,变基会在我们打算变基的分支之上重放当前分支的提交(一次一个)。

    【讨论】:

    • 您说“他们的分支是指您要合并的分支来自”,然后“使用他们的分支来接受我们要合并的分支的更改进入 “——嗯?
    • “into”一词使用不当。如果我在一个分支上,并且想与 master 合并,运行“Git checkout --theirs filename(s)”将使 master 的文件优先,这会覆盖我分支的副本。 “--ours”是相反的,在合并中给我的分支优先级
    • 嗯,我发现这个问题完全符合我的困惑。我多次阅读了投票结果良好的答案,但仍然不知道任何程度的信心的答案。回到谷歌。
    • @HeyHeyJC 如果你能阐明不清楚的细节,我可以尝试重新措辞
    • 所有矛盾的答案。当您在 Gitlab 中从分支比较中进行合并时,您实际上并没有特别“进入”任何分支,至少您没有明确知道。当您不使用命令行时,“源”和“目标”分支将是更明确的术语。
    【解决方案2】:

    “Ours”(和“mine”)指的是 current 分支; “theirs”指的是要合并的分支。听起来您实际上想使用“theirs”。

    【讨论】:

    • 有时,直截了当的答案很棒。赞成票
    • 我认为恰恰相反。
    【解决方案3】:

    我承认一开始这很令人困惑?。我什至写了an article 来详细解释它是如何工作的。

    简而言之:“我的”是您在分支中持有的更改,“他们的”是所有内容都进入的目标分支。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-02-19
      • 2021-01-09
      • 2014-04-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多