从包含本地更改的 main 创建分支,或从搁置集创建分支

Create branch from main with local changes included, or create branch from shelveset

我在我们的主分支工作了一段时间,但现在意识到更改更全面,应该在开发分支中开发。

因此,我想从我们的主分支创建一个开发分支,并将我在主分支中的本地修改移动到该分支。旧版本的 VS 和 TFS 似乎有一种方法,使用 tfpt 命令,但我无法找到如何在较新的环境中完成此操作,我的机器上有 VS2019 专业版,我们使用的是 TFS 2017。 (描述了旧的解决方案 here)。

如果前面描述的过程可以通过修改或一个很好的 hack 来采用,那么当然会非常感谢一个操作方法。

正如您所说,tftp 命令是 Visual Studio Power Tools 的一部分,它在 VS 2019 中不存在。

作为解决方法,您可以这样做:

1) 将所有更改的文件复制到另一个位置(本地)。

2) 撤消挂起的更改。

3) 创建新分支。

4) 在本地删除更改文件并复制新文件(您在步骤 1 中备份的文件)。

5) 签入更改。

根据您的描述和问题中分享的解决方案。它实际上是在谈论如何将搁置集取消搁置到 TFS 中的另一个分支。

如果不使用 tfpt unshelve /migrate 命令,没有更好的方法来 在 Visual Studio 2019 年处理此问题。

根据您的情况,解决此问题的一个不明智的解决方法应该是:首先在主分支上备份本地文件,撤消待处理的更改,基于主分支创建一个新的开发分支。从开发分支的服务器端获取最新版本到您的工作区。

然后将从主分支复制的备份files/folders复制到新的开发分支。 Windows系统会判断替换文件和添加新文件。(可能需要一些时间)此后,TFS系统会自动检测本地的变化,并将它们列为dev 分支的新待定更改。一些新添加的文件可能会留在排除列表中,手动将它们提升到包含列表中。

之后,你也可以考虑使用Git。如果您使用 GIT,这很简单。在 UI 中创建新分支后,只需对新分支执行 'check out' 即可。任何未提交的更改将自动指向新分支。然后你可以在那里提交它们。

您可以在 Visual Studio 中通过执行以下操作完成此操作:

  1. Select“团队资源管理器”选项卡
  2. Select 顶部的“主页”图标
  3. Select“更改”
  4. 单击“隐藏”=> select“全部隐藏”
  5. 创建您的开发分支,或者如果存在则切换分支
  6. 右键单击“Stashes”部分中的“WIP”=> 将鼠标悬停在“Apply”上 => select“Apply All as Unstaged”