限制git分支机构的签出(VS2017)

限制git分支机构的签出(VS2017),git,tfs,visual-studio-2017,Git,Tfs,Visual Studio 2017,我正在寻找一种方法来限制谁可以在VisualStudio上签出分支(即在它们之间切换)。在谷歌上找不到直接的答案 假设TFS回购协议上有分支A、B和C,我想将其设置为只有特定用户才能在各个分支之间切换,或者可能需要密码才能切换 有人知道这样做的方法吗?这是不可能的。 克隆Git存储库时,您将收到完整的repo及其所有历史记录。所有提交都在其中,任何用户都可以在任何提交时签出存储库。这是Git的一个重要部分 如果您希望某个解决方案的某些部分不被某些用户使用,那么您需要将它们放在一个单独的存储库中。

我正在寻找一种方法来限制谁可以在VisualStudio上签出分支(即在它们之间切换)。在谷歌上找不到直接的答案

假设TFS回购协议上有分支A、B和C,我想将其设置为只有特定用户才能在各个分支之间切换,或者可能需要密码才能切换

有人知道这样做的方法吗?

这是不可能的。 克隆Git存储库时,您将收到完整的repo及其所有历史记录。所有提交都在其中,任何用户都可以在任何提交时签出存储库。这是Git的一个重要部分


如果您希望某个解决方案的某些部分不被某些用户使用,那么您需要将它们放在一个单独的存储库中。

甚至没有办法提出这种检查建议:Git中没有预签出/预切换挂钩。若有,至少可以防止意外切换到禁止分支。使用git钩子可以防止对禁止分支的更新(推送到禁止分支)。这就是GitHub、Gitlab等中受大致保护的分支的工作方式。通过分支策略,在Azure DevOps中保护服务器上的分支以防意外推送很容易。但是没有办法阻止他们离开。