使用github时,有没有办法在fork上locking单个文件或目录?

我们是一个由60多名开发人员组成的团队,他们正在从SVN转到Github。 我们在SVN中有一个进程,在个人文件被locking时,只要开发者想提交代码,他需要让文件的所有者解锁。 我们三个是总共150多个文件的所有者。 解锁之前是一个代码审查。

在Github中,我们计划使用Fork-Clone模型 – 开发团队正在开发的每个项目都将执行一个fork,每个开发人员都会对fork进行克隆,编写代码并提交到源代码,function将向上游做拉请求。

虽然这看起来很好,但问题是当一个大项目交付时,会带来很多复审的变化,从而增加了文件所有者的负担。 此外,这可能发生在后期的发展周期,因此项目可能会受到危害。

我们认为可能的一种方法是在git push被完成到原点(叉)时有钩子。 可以有一个最后的审查git拉到上游。

但是,我们无法find任何github扩展或推钩。 有没有一个快速的方法(阅读,现有的扩展)来做到这一点与Github,或者我们应该使用相同的钩子,我们将使用Git?

这个用例是Git比SVN好得多的原因之一 – > rebase ! 如果您遵循良好的git工作stream程,请在提交Pull Request之前从上游重新组织。 你不需要担心文件locking和跺脚,另一个人的提交和合并冲突等等。一个rebase把你的工作放在一边,应用远程提交,然后在上面应用你的工作。

我认为这只是在你的过程中重新思考,并依靠git与力量在git之上适配Subversion工作stream程的优势。 你的“fork-clone”模型也可能需要另外的样子。 大多数情况下,每个开发人员都有自己的分支,如果需要,可以通过团队之间的远程分享回购。 但是分享同一起源的贡献者会制造一些坏习惯。

Gitflow是一个非常受欢迎的git工作stream程,而Github本身有一些很好的提示并分享他们的工作stream程 。

没有机会,如果文件不可合并,你需要locking,使用集中的解决scheme,而不是GIT,即SVN或ClearCase。

Git不提供任何lockingfunction,因为它是分散的。 但是,如果您将代码托pipe在GitLab Enterprise Edition Premium上 ,则可以使用Web界面来locking单个文件或文件夹 ,从而实现您想要执行的操作。

如果你不想在别人的服务器(他们的网站)上托pipe你的项目,你也可以下载GitLab并把它托pipe在你自己的networking服务器上。

在Git中没有办法做到这一点。 正如别人所说,如果文件是“mergable”,你可以尝试rebasing,改变你的行为方式。 在我们的例子中,我们有一个约定:如果您真的需要locking它,请重命名它。 但是我们只在办公文件等方面做这样的事情
此承担没有给出解决scheme,这是一个解决方法的技巧(但stackoverflow不允许我添加此作为评论。