web-dev-qa-db-ja.com

ギトーシスvsジトライト?

プロジェクトをチームと共有するgitサーバーのインストールを探しています。 gitアクセスが必要な開発者ごとに、SSHアクセスを持つサーバー上にユーザーアカウントを作成したくありません。この問題をカバーする2つの同時解決策があります:gitosisとgitolite。

両方のソリューションの比較を見つけることができませんでした。それらの主な違いは何ですか?他の同様の解決策はありますか?

138
greydet

プロジェクトをチームと共有するgitサーバーのインストールを探しています。

justgitを使用できます。

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ユーザーで何かをしたい場合、 gitサーバーのセットアップ のドキュメントは短いです-本当に簡単だからです。

要約すれば:

  • Gitをインストールする
  • Gitという名前のユーザーを作成します
  • あなたとあなたのチームの公開鍵をgitユーザーの.ssh/authorized_keysファイルに追加します
  • Gitユーザーのシェルをgit-Shellに変更します
  • サーバーにリポジトリを作成する
  • git pull/pushingを[email protected]に開始します

only専用のgitユーザーを使用する場合と使用しない場合の違いは、git-Shellを使用するようにgitユーザーを設定した場合、許可されないことです。それ自体が他のことをします。ただし、gitサーバーとして機能するという点では、これはインストール不要のソリューションと同じです。

190
AD7six

主な違いは、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 を参照してください。

  • 等々...

140
VonC

ただの補足です。必要に応じてGerritを使用することもできます:

Gerrit Code Review

最初に、Gerritはコードのレビューに使用されているようですが、実際にはユーザーの管理にも使用でき、適切に定義された権限を付与できます。 bypasscode-review(troughaccess controls)を使用して使用できますプロジェクトとsshキーを管理するためだけに。 Gerritには、非常に強力なアクセス制御メカニズムがあります。

Gerritアクセス制御

アクセス制御ドキュメントで定義されているブランチ、タグ、または想像できるあらゆるものについて、プッシュに制限できます。

15
Fatih Arslan

より迅速で汚れたソリューションを実現するには、 git daemon を使用してピアツーピアに移行します。 記事はこちら まさにそれを行うことについて。

編集:私はこれがOPの質問に厳密に答えていないことを認識しています。主に、エンタープライズgithubアカウントが設定されるまでコードを共有するためのダウンした汚い方法を探しているときにこれに遭遇した人のために、これをここに置きます。

8
Tim Keating