GitHub:接受当前更改和传入更改之间的差异

GitHub:接受当前更改和传入更改之间的差异,github,Github,代码冲突时会出现问题 如上图所示,有四个选项 接受传入的更改 接受当前更改 接受两个更改 比较变化 我想知道接受当前更改和接受传入更改之间的区别,这取决于导致冲突的操作类型() 在您的情况下,是一个合并,其中: 当前更改表示您拥有的内容(合并的目标) 传入的更改表示您合并的内容(合并的源) 然后: 选项1(“接受传入更改”)将完全忽略您拥有的内容,并保留您合并的内容 选项2(“接受当前更改”)将完全忽略您合并的内容,并保留您拥有的内容 不要忘了,在使用重新基准的情况下,。如果这是由于重

代码冲突时会出现问题

如上图所示,有四个选项

  • 接受传入的更改
  • 接受当前更改
  • 接受两个更改
  • 比较变化

  • 我想知道
    接受当前更改
    接受传入更改

    之间的区别,这取决于导致冲突的操作类型()

    在您的情况下,是一个合并,其中:

    • 当前更改表示您拥有的内容(合并的目标)
    • 传入的更改表示您合并的内容(合并的源)
    然后:

    • 选项1(“接受传入更改”)将完全忽略您拥有的内容,并保留您合并的内容
    • 选项2(“接受当前更改”)将完全忽略您合并的内容,并保留您拥有的内容

    不要忘了,在使用重新基准的情况下,。

    如果这是由于重新基准引起的冲突,您可以这样想象-

  • 您的主分支已修复
  • 一个源于较旧的主控提交的特性分支正在从主控提交转移到最新的主控提交(这就是rebase的核心)
  • 现在,如果你从大师的角度来看-

    • 传入更改
      是指将移动到主控的更改(即功能分支中的更改),因此称为

    • 当前更改
      是master中已经存在的更改(即由其他开发人员或您自己在master上完成的更改)


    如果发生合并冲突,正如@VonC所建议的那样,术语是相反的。

    因此,为了确保我理解:如果我在BRANCH_1上,我运行“git checkout master”并获得冲突:传入的更改是master上文件的样子当前的更改是我在BRANCH_1上所做的,对吗?@Nicktryszewski是的,如果您进行了git签出-m master()@VonC“选项1(‘接受传入更改’)将完全忽略您合并的内容,并保留您拥有的内容。”这是真的吗?“我的感觉告诉我情况正好相反。”丹泽尔同意。我已经相应地编辑了答案。因此,如果我在我的功能分支上运行了
    git pull--rebase origin master
    传入的更改
    作为master上的更改吗?@MahmoudTokura,从技术上讲,是的。但在实践中,我们几乎从未将master合并到我们的特性分支中。