Git可以使用独占结账吗?

Posted

技术标签:

【中文标题】Git可以使用独占结账吗?【英文标题】:Can Git use exclusive checkout? 【发布时间】:2021-08-05 12:28:00 【问题描述】:

我想说服我的团队负责人从 TFVC 切换到 Git,但主要的绊脚石是独家结帐(他喜欢这个无用的功能),是否有可能使用 Git 和 Azure DevOps 拥有这种机制?

我买了一台Mac,只要他们用TFVC我就不能用????

【问题讨论】:

也许我在这里有点离群,但搜索 TFVC 独家结帐似乎并没有给出任何相关结果。如果你在这里解释了这意味着什么,这个问题会更容易回答。 @Kraigolas 它基本上是在检出一个带锁的文件,以防止其他人同时检出它。 我想知道你为什么说“不能使用它”,因为在 macOS 上可以通过多种方式(解决方法)连接到 TFVC,docs.microsoft.com/en-us/visualstudio/mac/… 老实说,您可以设置挂钩(这可能不是最简单的方法)来阻止人们将更改推送到您想要保留为锁定的文件。话虽如此,我个人认为没有任何理由这样做。如果您不希望其他开发人员处理文件,请告诉他们不要这样做。或者如果他们尝试提交,则阻止对所述文件的更改。 Git 是分布式的,所以说两个人不能同时签出一个文件是没有意义的。每个人都可以访问所有文件,由主分支的维护者决定合并到什么。 在我看来你不明白 git 是集中式 VCS 和分布式 VCS 之间的区别。 【参考方案1】:

简短回答:不,由于 git 的分布式特性,git 中没有排他性结帐。

长答案:您可以使用其他一些机制在 git 中实现相同的工作流程。您的解决方案将取决于您将使用的 git 服务器软件。 Gitlab 支持文件锁定。据我所知,Bitbucket 不支持直接文件锁定,但您可以设置权限来锁定分支,并且只允许通过拉取请求进行合并。这实现了与文件锁定相同(甚至更多)的效果。

【讨论】:

我们使用 Azure DevOps Server,但我在阅读文档时看不到这样的选项 我看到你用azure-devops标记了这个问题。也许添加到问题中以明确声明您正在使用 Azure DevOps,并询问如何在那里实现它? 我在您的问题中添加了azure-repos,因为这似乎是 DevOps 的版本控制部分。

以上是关于Git可以使用独占结账吗?的主要内容,如果未能解决你的问题,请参考以下文章

ruby [git] - 发布结账钩子

使用 IPN 处理“待付款”的 PayPal 快速结账

ubercart 2.4 中的多步结账

C语言规范第一个花括号可以不独占一行吗?

C语言规范第一个花括号可以不独占一行吗?

Paypal Express 结账以客人身份支付订阅费用