我无法在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 回答
您应该直接使用 git fetch -p 命令将远程分支与源/分支同步 .
-p
(--prune
)git fetch
选项将在获取之前删除不再存在的分支 . 因此,您可以转到本地存储库的根目录并执行git fetch -p
,然后您会发现合并的分支将不会显示在remotes/origin
下 .如果有合并,请告知开发人员,您可以使用以下选项:
选项1:PR完成后添加通知
您可以在VSTS通知页面(https://account.visualstudio.com/_notifications?view=contents)中添加订阅,指定要通知的电子邮件地址,并将PR状态更改过滤为已完成,以便开发人员可以知道何时合并分支 .
Note: 对于多个电子邮件地址,您可以使用逗号分隔 .
选项2:手动获取更新
如果您不想为开发人员设置通知,他们应该通过以下方式查看更改:
直接转到VSTS网页
或使用
git fetch -p
和git branch -a
更新其本地仓库,并检查是否有已删除的分支 .VS中的整个“同步”过程可能会让您感到困惑,因为它隐藏了Git实际执行的操作的细节 .
“同步”永远不会删除任何本地分支,因为您可能在本地分支上有更多尚未推送的更改,如果它自动执行,则会被删除 .
本地分支机构具有"tracking"远程分支的概念 . 您所看到的内容正在发生,因为您的本地
mybranch
仍在跟踪名为origin/mybranch
的远程分支,即使VSTS上当前不存在该分支 . 如果您现在要执行本地mybranch
,则会自动(重新)创建远程跟踪分支,其内容将与您在本地的内容相匹配 .总结:你不应该期望“同步”删除分支,因为这不是它的工作原理 . 您需要手动删除它 .