私たちは同じ製品に取り組んでいる60人以上の開発者のチームであり、SVNからGitおよびGitHubに移行しています。 SVNには、個々のファイルがロックされているプロセスがあり、開発者がコードをコミットしたいときはいつでも、ファイルの所有者がロックを解除する必要があります。私たちのうち3人が合計150以上のファイルの所有者です。ロック解除の前にコードレビューが行われます。
Githubでは、Fork-Cloneモデルを使用することを計画しています-開発者のグループが取り組んでいる各プロジェクトはフォークを行い、各開発者はフォークのクローンを作成し、コードを記述してOriginにコミットします機能はアップストリームにプルリクエストを行います。
これは問題ないように見えますが、問題は大きなプロジェクトが配信されたときに、レビューのために多くの変更をもたらすため、ファイル所有者の負荷が増大することです。また、これは開発の後半のサイクルで発生する可能性があるため、プロジェクトが危険にさらされる可能性があります。
動作すると思われる1つの方法は、GitプッシュがOrigin(フォーク)に行われたときにフックを使用することです。上流への最後のレビューgit pullが1つあります。
ただし、同じものに対するgithub拡張機能またはプッシュフックは見つかりませんでした。 Githubでこれを行う簡単な方法(既存の拡張機能)がありますか、またはgitで使用するのと同じフックを使用する必要がありますか?
ファイルがマージ可能でなく、ロックする必要がある場合、偶然ではありません。GITの代わりに集中ソリューション、つまりSVNまたはClearCaseを使用してください。
git LFS
(GitHubなどの一部のgitホスティングプロバイダーでサポートされています)を使用している場合は、 ファイルロック を使用できます。
.gitattributes
ファイルを編集して、ファイルタイプをロック可能としてマークします。
*.docx lockable
# Make MS Word files lockable
そしてそれをロックします:
$ git lfs lock example.docx
git lfs unlock example.docx
と他の誰かのファイルで--force
を追加すると、ファイルのロックを解除できます。
Gitは分散化されているため、ロック機能を提供しません。ただし、コードを GitLab Enterprise Edition Premium でホストしている場合、 Webインターフェースを使用して個々のファイルまたはフォルダーをロック を実行して、目的を正確に達成できます。
他の人のサーバー(彼らのWebサイト)でプロジェクトをホストしたくない場合は、GitLabをダウンロードして自分のWebサーバーでホストすることもできます。
正確にロックするわけではありませんが、Githubは「 Code Owners 」という概念を導入しています。コードベースの一部を制限して、コード所有者によるレビュー後のコミットのみを許可できます。
これは可能です。 git-lfs 2.0には、ファイルをロックする機能が導入されています。次のリンクを参照してください: https://github.com/git-lfs/git-lfs/wiki/File-Locking 。この機能のサポートは、TFS 2017.2以降で利用可能です: https://docs.Microsoft.com/en-us/vsts/release-notes/ 。