DUICUO

GitHubオープンソースの優れた代替手段5つ

Gitは、プログラミングをはじめとする様々な分野で広く使用されている人気のバージョン管理システムです。ローカルまたはサーバー上で実行して共同作業を行うことができ、ホスティングサービスとしても利用でき、現在多くのホスティングプラットフォームで高い需要があります。

GitHubはオープンソースではありません。しかし、実際には、ほとんどのユーザーにとって大きな違いはありません。GitHub上のコードの大部分は共有されることを意図しているため、GitHubの主な機能はパブリックバックアップサービスです。GitHubがサービス利用規約をキャンセルしたり、完全に変更したりした場合でも、コードのローカルコピーをGitHub上に保存しておけば、データの復元は比較的簡単です。しかし、一部の組織はGitHubが提供するGit以外のサービスに依存し始めており、GitHubからの移行は困難になっています。GitHubは使いにくい場所であるため、多くの人にとってGitHubの代替手段を見つけることは良い選択肢です。

今日は、GitHub に代わるオープンソースの選択肢を 5 つご紹介します。

1. GitLab

GitLabはGitHubの単なる代替手段ではありません。完全なDevOpsプラットフォームです。コード管理ツール、プロジェクト管理ツール、問題報告、継続的デリバリー、モニタリング機能を備えているため、ソフトウェア開発組織にとって実質的に不可欠なインフラストラクチャとなっています。GitLabはGitLab.comからご利用いただくか、ローカルにダウンロードしてご利用いただけます。

GitLabは、コードとその背後にある組織、そしてGit自体の両面において、オープンソースに尽力しています。組織は豊富なビジネスドキュメントを公開しており、ウェブサイトとしてもGitLabはGitの普及に非常に熱心に取り組んでいます。マージリクエストなどのサイトの機能をターミナルで使用する場合、GitLabのインターフェースは純粋なGitでリクエストを解決します。

2. ギトライト

Gitoliteは軽量なGitコードホスティングシステムです。GitLabとは異なり、Webインターフェースやデスクトップクライアントはないため、ユーザーの観点から見ると、Gitに何も追加されません。実際、ユーザーはGitoliteを直接使用するのではなく、ターミナルやGit Colaなどのフロントエンドクライアントを介して、通常通りGitを使用しています。

しかし、サーバー管理者の観点から見ると、Gitolite は通常の Git サーバーを実行する際に手動で管理しなければならない権限の問題を解決します。Gitolite を使用すると、サーバー上にユーザーを 1 人(例: git という名前のユーザー)作成し、その ID を使用して Git サーバーにログインしてアクセスするだけで済みます。Gitolite は、ユーザーのアクセス権限の検証、SSH キーの管理、特定のリポジトリへのアクセス時の権限レベルの検証などを行うことができます。管理者は、無数の Unix ユーザーアカウントを作成する必要がなくなり、SSH 公開キーで識別されるユーザーをアクセス可能なリポジトリのリストに追加するだけで済みます。

Gitoliteは基本的に、いくつかのPrelスクリプトとプレーンテキストの設定ファイルで構成されています。ユーザーはその存在にさえ気づかないでしょう。Webインターフェースを必要としない限り、Gitoliteはまさにwin-winの選択肢です。

3. ギテアとゴグス

Gogsは、MITライセンスのGitサーバーフレームワークおよびWebユーザーインターフェースです。2016年、開発リポジトリへのアクセスが元の開発者のみに許可されていたため、Gogsユーザーの一部は開発に支障をきたしていると感じ、コードをGiteaに移譲しました。現在、2つのプロジェクトはそれぞれ独立して共存しており、ユーザーエクスペリエンスは基本的に同じです。ただし、どちらのプロジェクトもGitHubでホストされています。

GiteaとGogsを使えば、ソースコードをダウンロードしてサーバー上で実行できます。ユーザーはウェブサイト上でアカウントの作成、ログイン、独自のリポジトリの作成、コードのアップロード、コードの閲覧、ファイルの問題やバグの報告、コードのマージリクエスト、SSHキーの管理などを行うことができます。インターフェースはGitLab、GitHub、Bitbucketに似ているため、オンラインコード管理システムの使用経験があれば、GiteaとGogsにもほぼ馴染みがあるでしょう。

GiteaとGogsは、BSD、macOS、Windowsのコンテナを含むあらゆるLinuxサーバーにパッケージとしてインストールできます。また、ソースコードからコンパイルすることもできます。クロスプラットフォームなので、Goが動作する環境であればどこでも実行できます。

4. ギット

Gitにはユーザー管理や権限設定はありませんが、SSHと統合されており、Gitコマンドを使用するための環境として特別に設計された特別なGit-shellアプリケーションが付属しています。ユーザーのデフォルトシェルをgit-shellに設定すると、サーバーとのやり取り時にユーザーが利用できる操作を制限できます。

Git自体には、各ユーザーのアクセス権限を管理するためのリポジトリ権限ツールが用意されていないため、オペレーティングシステムのユーザー権限とアクセス制御リスト(ACL)に頼る必要があります。ユーザー数が少ない場合、この操作は少し面倒になる可能性があります。小規模なプロジェクトや新しく開始したプロジェクトの場合、Linuxサーバー上でGitを実行することは、共同作業スペースのニーズを満たす最もシンプルで直接的なソリューションです。

5. ボーナス:化石

Fossilは明らかにGitではありません。ある意味、GitHubの代替としての魅力はまさにそこにあると言えるでしょう。実際、FossilはGitシステムそのものの代替となるものです。Gitと同様に完全なバージョン管理システムであり、バグトラッキング、Wiki、フォーラム、そして作成したすべてのリポジトリにドキュメント機能も組み込まれています。Webインターフェースも搭載されています。信じられないかもしれませんが、興味のある方はぜひ試してみてください。Fossilのウェブサイトからダウンロードし、システムPATH内の任意の場所に保存するだけです。