Tfs 来自本地工作区的分支

Tfs 来自本地工作区的分支,tfs,version-control,Tfs,Version Control,我正在开发团队项目,突然意识到我已经做了太多的更改,所以我需要创建分支 我从来没有在TFS中使用过分支,当我看到“工作区版本”中的“分支”时,我想这就是我所需要的。但是这个选项并不像我想象的那样起作用 如何从“项目的本地副本”创建新分支,并包含所有本地更改”?我上面提到的选项创建了类似于branch from的东西…我不知道具体是什么,但我肯定知道,这不是从我的本地版本中进行的所有更改。正如我注意到的,生成的分支没有我添加的文件和项目。我要做的是: 搁置你的工作 从相应的源文件夹进行分支 使用

我正在开发团队项目,突然意识到我已经做了太多的更改,所以我需要创建分支

我从来没有在TFS中使用过分支,当我看到“工作区版本”中的“分支”时,我想这就是我所需要的。但是这个选项并不像我想象的那样起作用

如何从“项目的本地副本”创建新分支,并包含所有本地更改”?我上面提到的选项创建了类似于branch from的东西…我不知道具体是什么,但我肯定知道,这不是从我的本地版本中进行的所有更改。正如我注意到的,生成的分支没有我添加的文件和项目。

我要做的是:

  • 搁置你的工作
  • 从相应的源文件夹进行分支
  • 使用TFS电动工具取消搁置到其他位置
  • 登记入住

这样,您就得到了一个干净的分支,并记录了您所做的更改。

Robaticus的回答是正确的,但我想补充一些我在别处没有看到的细节。我只是不得不这样做,它表现得好像它在工作,但它不是。它会假装自动合并或复制,但没有创建任何文件,也没有在新分支中进行签出。应引发错误,但未显示任何错误

事实证明,如果路径没有空格,则源和目标周围的引号是可选的,但如果存在空格,则引号是必需的

以下是一个模板:

tfpt unshelve MyShelfsetName /migrate "/source:$/MyPath/My Path with spaces/MyBranch" "/target:$/MyPath/My Path with spaces/MyOtherBranch"
  • 下载并安装
  • 把你的作品搁置起来,记住名字
  • 从您一直使用的中继创建目标分支
  • 映射新分支并获取代码的本地副本
  • 打开Windows PowerShell并更改为原始源代码的目录
  • 运行以下命令,将搁置集名称和目录结构替换为您自己的:

    tfpt unshelve /migrate "MyShelveset" "/source:$/project/trunk" "/target:$/project/branch" 
    
  • (如果搁置集名称包含空格,则需要在其周围加引号)


    这将有助于您避免我在尝试按照原始说明操作时遇到的一些问题。

    您可能需要尝试以下方法: 我假设您使用的是EclipseIDE和TFS插件。您需要是项目的TFS管理员

  • 在工作空间中打开项目并右键单击它
  • 您将在菜单中看到“团队”
  • 在“团队”的扩展菜单中选择“共享项目”
  • > P>输入Team Foundation服务器详细信息以连接它,并选择适当的分支/项目来进行更改。您还可以通过TFS控制面板创建新文件夹

  • 在选定的分支/文件夹中共享项目

  • (这只是将项目添加到TFS—您需要立即签入)

  • 再次右键单击该项目。 在“团队”菜单中,您将找到签入更改选项
  • 单击它,您的更改将发送到服务器

  • 干杯

    哇。奇怪的巧合。我也觉得有必要这么做。TFS 2010适用于我。如果消息“无法确定工作区”,则取消搁置的命令类似-->tfpt unshelve/migrate MyShelveset/source:$\project\trunk/target:$\project\branch对我有效:tfpt unshelve/migrate MyShelveset”/source:$/project/trunk”“/target:$/project/branch”是在执行tfpt命令后打印的,可能是因为其中一个当前不在本地目标文件夹(cd)中。我还必须从源分支和目标分支中删除双引号,否则我得到“的服务器路径组件/source:serverpath不是有效的服务器路径。”。我还得到了“未找到搁置集”,因为搁置集名称周围有双引号。我希望这对某人有所帮助我很久以前就换用GIT了,我不会再回到TFS了,但是thx的建议,它可能对某人有用。