Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Git允许无基础的合并吗? 我知道,在Team Foundation版本控制中,毫无基础的合并是危险的。我想知道使用Git是否也很危险_Git_Tfs_Merge_Git Merge_Tfvc - Fatal编程技术网

Git允许无基础的合并吗? 我知道,在Team Foundation版本控制中,毫无基础的合并是危险的。我想知道使用Git是否也很危险

Git允许无基础的合并吗? 我知道,在Team Foundation版本控制中,毫无基础的合并是危险的。我想知道使用Git是否也很危险,git,tfs,merge,git-merge,tfvc,Git,Tfs,Merge,Git Merge,Tfvc,如果您不熟悉无基础的合并。红色虚线是一条毫无根据的重设基础/合并 使用Git这样做安全吗 > p>可以使用 Git Cyt Pox向任意分支应用任意提交。嗯,是的和不。Team Foundation版本控制(TFVC)强制执行分支层次结构,并且它有一个规则,您只能从分支到父或子。在您提供的映像中,您可以将B合并到C,这不是一个无基础的合并。将B合并到C将使用B3作为公共祖先,并生成一个好的、易于处理的三方合并 但是,TFVC不允许您将A直接合并到C中。您需要将A合并到B中,然后将结果合并到C中。

如果您不熟悉无基础的合并。红色虚线是一条毫无根据的重设基础/合并


使用Git这样做安全吗

> p>可以使用<代码> Git Cyt Pox向任意分支应用任意提交。

嗯,是的和不。Team Foundation版本控制(TFVC)强制执行分支层次结构,并且它有一个规则,您只能从分支到父或子。在您提供的映像中,您可以将B合并到C,这不是一个无基础的合并。将B合并到C将使用B3作为公共祖先,并生成一个好的、易于处理的三方合并

但是,TFVC不允许您将A直接合并到C中。您需要将A合并到B中,然后将结果合并到C中。如果您想绕过此工作流,您将无法执行无基础的合并,这将跳过公共祖先计算。结果是,您正在进行一个没有共同祖先的三方合并—两个文件看起来都像新添加的文件,它们之间的任何差异都将被视为冲突

这是一个巨大的痛苦

Git并不试图强制执行任何分支层次结构,因此在您的示例中,您可以从C合并到A,而不会受到惩罚。A3将是本例中的共同祖先,您将有以下图表:

                C  1--2--3----M
                  /          /
        B  1--2--3--4--5    /
          /                /
A  1--2--3--4--5-----------
所以这个场景不是Git中的无基础合并,但是您仍然可以在Git中进行无基础合并。如果您尝试合并两个没有共同祖先(没有合并基)的分支,那么这将是一个无基础的合并,并且在TFVC中执行无基础合并时会出现所有问题


您可以尝试创建一个没有父级的新分支(via)。

红色显示的是与git的完全正常合并,如果您在同一文件中的同一位置更改两个分支中的内容,则除了一些“正常”合并冲突外,您不会遇到任何困难。否则,没有问题

但如果你不需要实现合并,你可以选择cherrypick

但git的好处在于,您可以尝试撤销(合并很容易撤销!)。因此,无需太多困难,您可以尝试合并,看看会发生什么,回答您自己的问题;-)如果您不满意,请撤消


欢迎离开tfs;-)

但这不是合并,这是一个樱桃选择。