TFS从子子直接合并到我

标签 tfs branching-and-merging

在我的 TFS 源代码控制存储库中,我有三个分支,布局如下:

MAIN
 |
  -> DEV
      |
       -> TEST

我想直接从 TEST 合并到 MAIN,而不通过 DEV 分支合并。

MAIN .......
 |         .
  -> DEV   .
      |    V
       -> TEST

我无法找到一种简单的方法来实现这一目标。请帮我看看这是否可行。

最佳答案

这是可能的,但不推荐。这就是您所说的 baseless merge在TFS中。如果不安装任何 Visual Studio 扩展,您只能从命令行执行此操作。

因为 TFS 不会查找正在合并的文件的共同祖先,所以它会将每一项更改都视为冲突,并要求您手动合并每一个文件。通过 DEV 合并时,TFS 将能够找到公共(public)父级并使用它进行 3 路合并。

此外,一旦 TFS 在两个不相关的分支之间合并,它将在两个路径之间创建分支关系。接下来它将显示从 TEST 到 MAIN 的路径作为有效的合并方向。

有一种替代方案,即货架移植的形式。这基本上搁置了所有更改的文件,并允许您将更改的文件应用到不同的分支,而无需创建分支关系。

如果所有这些都没有阻止您,那么可以采取以下方法:

  • 在 Visual Studio 的“合并”窗口中,在下拉菜单中输入您想要手动合并的路径(VS2012 及更高版本)
  • 在命令行上使用 tf merge /baseless /recursive source target创建新的合并关系。
  • 使用Visual Studio Power Tools ' tfpt unshelve /migrate /source:<> /target:<> shelvesetname将在一个分支上创建的搁置集的更改取消搁置到另一分支。

关于TFS从子子直接合并到我,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20501555/

相关文章:

git - 带有 TFS 的 Visual Studio 2013 联机使用 Git : Saving files checks-in automatically

git - 使用 git,如何删除远程分支的本地副本?或者至少 pull 而不 merge ?

windows - 如何从上游分支 merge ?

tfs - 理解 VSTS 日志命令 task.addattachment、task.uploadfile、artifact.upload 和 build.uploadlog

sql - 如何从单独的脚本创建数据库?

security - TFS仅向一个分支授予权限

linux - 在存储库根目录下创建项目后创建一个颠覆分支

git - 我可以使用 `diff ...` 作为分支清理的指示符吗?

svn - 删除SVN分支

tfs - 我可以使用 TFS 查询的 TFS 报告创建分层需求文档吗