首页 文章

如何通过Visual Studio Team Services上的拉取请求与Visual Studio Desktop同步分支合并

提问于
浏览
0

我无法在Visual Studio 2017桌面(VS)中的Visual Studio Team Services(VSTS)Web界面显示中完成分支合并 .

详细信息:我在VSTS中使用Git支持创建了一个测试项目,并在VS中克隆了它 . 在VS Team Explorer中,主分支显示正确 . 在VSTS中,我创建了一个用户故事,然后从master创建了一个分支(通过User Story对话框) . 在VS Team Explorer中对master进行同步/获取时,我可以在VS中创建新分支 . 我检查了VS中的branc,对文件进行了更改,并提交并推送 . VSTS中的更改正确显示 . 在那里,我创建了一个分支拉动请求作为审阅者并批准它 . 这合并了VSTS上的分支并将其删除,至少Branches视图不再显示分支,只显示master,并且合并历史记录看起来正确 . 现在我想在VS中进行合并,其中master和branch仍然在本地repo和remotes / origin下显示 . master上的checkout / sync确实反映了已更改的文件,但是分支在远程/原点仍然可见,即使它已在VSTS中消失了!如何在此处进行VS同步,以便分支不再显示?

或者我的工作流程错了吗?同样,我正在做的是

  • 用户故事(VSTS) - >

  • branch(VSTS) - >

  • sync(VS)结账分支(VS) - >

  • 更改文件(VS) - >

  • commit / push(VS) - >

  • 拉请求(VSTS) - >

  • merge(VSTS) - >

  • ??? (VS)

2 回答

  • 1

    您应该直接使用 git fetch -p 命令将远程分支与源/分支同步 .

    -p--prunegit fetch 选项将在获取之前删除不再存在的分支 . 因此,您可以转到本地存储库的根目录并执行 git fetch -p ,然后您会发现合并的分支将不会显示在 remotes/origin 下 .


    如果有合并,请告知开发人员,您可以使用以下选项:

    选项1:PR完成后添加通知

    您可以在VSTS通知页面(https://account.visualstudio.com/_notifications?view=contents)中添加订阅,指定要通知的电子邮件地址,并将PR状态更改过滤为已完成,以便开发人员可以知道何时合并分支 .

    enter image description here

    Note: 对于多个电子邮件地址,您可以使用逗号分隔 .

    选项2:手动获取更新

    如果您不想为开发人员设置通知,他们应该通过以下方式查看更改:

    • 直接转到VSTS网页

    • 或使用 git fetch -pgit branch -a 更新其本地仓库,并检查是否有已删除的分支 .

  • 1

    VS中的整个“同步”过程可能会让您感到困惑,因为它隐藏了Git实际执行的操作的细节 .

    “同步”永远不会删除任何本地分支,因为您可能在本地分支上有更多尚未推送的更改,如果它自动执行,则会被删除 .

    本地分支机构具有"tracking"远程分支的概念 . 您所看到的内容正在发生,因为您的本地 mybranch 仍在跟踪名为 origin/mybranch 的远程分支,即使VSTS上当前不存在该分支 . 如果您现在要执行本地 mybranch ,则会自动(重新)创建远程跟踪分支,其内容将与您在本地的内容相匹配 .

    总结:你不应该期望“同步”删除分支,因为这不是它的工作原理 . 您需要手动删除它 .

相关问题