プロジェクトをチームと共有するgitサーバーのインストールを探しています。 gitアクセスが必要な開発者ごとに、SSHアクセスを持つサーバー上にユーザーアカウントを作成したくありません。この問題をカバーする2つの同時解決策があります:gitosisとgitolite。
両方のソリューションの比較を見つけることができませんでした。それらの主な違いは何ですか?他の同様の解決策はありますか?
プロジェクトをチームと共有するgitサーバーのインストールを探しています。
Gitサーバーを使用するには、リモートサーバーで必要なのはgitだけです。きめ細かいアクセス許可(チームとのみ共有することで可能性があることを示唆している)や追加機能が必要ない場合は、gitoliteなどは必要ありません。
リモートサーバーでgitが利用可能な場合、何もせずに、今求めていることを実行できます
ssh [user@]server
cd repos/are/here/
mkdir project.git
cd project.git
git init --bare
ローカル:
cd projects/are/here/project
git remote add Origin [user@]server:repos/are/here/project.git
git Push -u Origin master
専用のgitユーザーで何かをしたい場合、 gitサーバーのセットアップ のドキュメントは短いです-本当に簡単だからです。
要約すれば:
.ssh/authorized_keys
ファイルに追加しますgit-Shell
に変更しますonly専用のgitユーザーを使用する場合と使用しない場合の違いは、git-Shell
を使用するようにgitユーザーを設定した場合、許可されないことです。それ自体が他のことをします。ただし、gitサーバーとして機能するという点では、これはインストール不要のソリューションと同じです。
主な違いは、gitosisが現在は時代遅れであり、もはや積極的に維持されていないことです。
Gitoliteは非常に多く 詳細な機能が完成 であり、ちょうど 番目のバージョン をリリースしました。
その最も興味深い機能は、仮想参照(略してVREF)であり、これにより多くの pdate hook 必要に応じて、次の方法でプッシュを制限できます。
dir/file name:
後輩の開発者がMakefileに変更をプッシュしたくないのは、非常に複雑だからです。- VREF/NAME/Makefile = @junior-devs
新しいファイルの数:
後輩の開発者がsmallコミットをしたいので、コミットごとに9個以上のファイルをプッシュしたくない場合:- VREF/COUNT/9/NEWFILES = @junior-devs
高度なファイルタイプ検出:
ファイルには標準の拡張子(「gitignore」を使用できない)が付いている場合がありますが、実際には自動的に生成されます。これをキャッチする1つの方法を次に示します。- VREF/FILETYPE/AUTOGENERATED = @all
検出メカニズムを確認するには、 src/VREF/FILETETYPE
を参照してください。
著者のメールをチェックする:
一部の人々は、「自分のコミットしかプッシュできない」ことを確認したいと考えています。- VREF/EMAIL-CHECK = @all
src/VREF/EMAIL-CHECK
をご覧ください。
コミットの投票:
コミットに対する投票の基本的な実装は驚くほど簡単です。- VREF/EMAIL-CHECK = @all
。# 2 votes required to Push master, but trusted devs don't have this restriction
# RW+ VREF/VOTES/2/master = @trusted-devs
# - VREF/VOTES/2/master = @devs
実装については src/VREF/VOTES
を参照してください。
等々...
ただの補足です。必要に応じてGerritを使用することもできます:
最初に、Gerritはコードのレビューに使用されているようですが、実際にはユーザーの管理にも使用でき、適切に定義された権限を付与できます。 bypasscode-review(troughaccess controls)を使用して使用できますプロジェクトとsshキーを管理するためだけに。 Gerritには、非常に強力なアクセス制御メカニズムがあります。
アクセス制御ドキュメントで定義されているブランチ、タグ、または想像できるあらゆるものについて、プッシュに制限できます。
より迅速で汚れたソリューションを実現するには、 git daemon を使用してピアツーピアに移行します。 記事はこちら まさにそれを行うことについて。
編集:私はこれがOPの質問に厳密に答えていないことを認識しています。主に、エンタープライズgithubアカウントが設定されるまでコードを共有するためのダウンした汚い方法を探しているときにこれに遭遇した人のために、これをここに置きます。