Git とは?

Git

Git最新情報

NRIのOpenStandiaが提供するGit最新情報

Gitの保守サポートサービスの内容はこちら Gitの導入についてはこちら OSS全般の事例紹介はこちら

Gitバージョンアップ情報

■2023-05-09
[VerUP]Git 2.40.1(リリース日:2023/04/18)
■2023-03-22
[VerUP]Git 2.40.0(リリース日:2023/03/12)
■2023-02-21
[VerUP]Git 2.39.2(リリース日:2023/02/06)
■2023-01-25
[VerUP]Git 2.39.1(リリース日:2022/12/13)
■2022-12-20
[VerUP]Git 2.39.0(リリース日:2022/12/12)
■2022-10-26
[VerUP]Git 2.38.1(リリース日:2022/10/07)
■2022-10-12
[VerUP]Git 2.38.0(リリース日:2022/10/03)
■2022-09-06
[VerUP]Git 2.37.3(リリース日:2022/08/30)
■2022-08-24
[VerUP]Git 2.37.2(リリース日:2022/08/11)
■2022-07-20
[VerUP]Git 2.37.1(リリース日:2022/07/04)

すべてを見る

更新日:2020-12-18

Gitの概要

Git(ギット)は、オープンソースのバージョン管理ソフトウェアです。

Gitは、Linux kernel の産みの親でもある Linus Torvalds 氏が、全世界に多数の開発者を抱える巨大プロジェクトLinux kernel のソースコードを効率良く管理するために2005年4月に開発しました。

Gitは、ソースコードなどの管理倉庫であるリポジトリが1箇所に集中していない「分散型」のバージョン管理システムです。
分散型のバージョン管理システムでは、リポジトリをインターネット上で公開すれば誰でもそのリポジトリを複製して開発に参加することができます。
開発者一人一人が自分専用の作業リポジトリを持ってそこで作業をするため、オフラインでもソフトウェアの開発が進められます。
また、履歴やブランチを参照しやすい各種GUIも無料で提供されています。

Gitは、Linux kernel の開発で培われたノウハウが凝縮された高速かつ高機能なバージョン管理システムであるだけでなく、複数の開発者の間でソースコードを管理することが多いOSSプロジェクトのニーズにマッチする仕組みとして、Ruby on RailsをはじめとするOSSプロジェクトを中心に、世界中で爆発的に使われるようになっています。

Googleトレンドでも、バージョン管理ソフトウェアの中で最も人気であることが分かります。

日本での人気度の動向(Git、Apache Subversion、Mercurial、Darcs)

世界での人気度の動向(Git、Apache Subversion、Mercurial、Darcs)

また、Gitを利用したソフトウェア開発プロジェクトのための共有ウェブサービスであるGitHub(ギットハブ)もOSS開発者を中心に利用が進んでいます。

Gitは、プログラムのソースコード管理に利用されることが圧倒的に多いですが、ドキュメントなどのさまざまなファイルのバージョン管理も実現できます。

TOPに戻る

Gitの主な機能

主な機能は以下のとおりです。

機能 詳細
init リポジトリの作成
clone 既存のリポジトリの複製を作成
fsck リポジトリの正当性チェック
gc リポジトリ内の不要オブジェクト削除、最適化
status 変更したファイルの表示
diff コミットとワーキングツリー間などの違いをdiff形式で表示
add インデックス領域にコミットするファイルを追加
commit リポジトリに変更点を反映
log コミットログの表示
branch ブランチの作成、削除、表示
reset 直前のコミットの取り消し
revert ワーキングツリーを指定したコミット時点の状態にまで戻す
show-branch ブランチの作成・変更・マージの履歴を表示
merge ローカルブランチをマージする
checkout ブランチの切り替え
grep 文字列検索
pull 他のリポジトリの変更点をローカルリポジトリにマージする
push 公開リポジトリに自分のリポジトリの内容を送信する

■Gitのローカルオペレーション

Gitにはステージング領域(インデックス)と呼ばれるものがあります。
これはコミットを完了する前にコミットをフォーマットしてレビューできる中間領域となります。
コミット対象はステージング領域のファイルのみとなり、Gitディレクトリに管理したくないファイルがあれば、ステージしないことで管理外に指定することが可能です。

Gitのローカルオペレーション

TOPに戻る

Gitの主な特徴

主な特徴は以下のとおりです。

分散型 開発者一人一人がリポジトリ全体のコピー(作業リポジトリ)を保有し、そのコピーに対して変更を行い、そしてその変更がOKとなったら公開サーバにその変更を反映すればよい
そのため、開発者が自分の作業リポジトリでソースコードを書き換えるたびにサーバに接続することなくオフラインでも変更履歴を管理でき、きめ細かい変更とその共有がしやすい
マルチOS Linux、Mac OS X、Solaris、Microsoft Windowsなど、主要OSをサポート
高速 Gitは、当初からスピードとパフォーマンスを第一の目的に作られており、一般的な集中型のバージョン管理システムよりも数分の一から数百分の一の処理時間というベンチマークも取られているほど処理が高速
高機能 基本的な版数管理のほかに、コミットの取り消し(ロールバック)、コミットへの後からの追加、複数のコミットを一つのコミットとしてまとめられるなど、プログラミングに役立つさまざまな機能を備える
集中型のバージョン管理システムであるSubversionの利用ユーザーが、オフラインで作業を行う必要のある場合に、SubversionのリポジトリとGitのローカルリポジトリの間で双方向操作を可能にする「git-svn」というコマンドなども用意されている
気軽に試せる 無料でダウンロードでき、インストール作業も簡単
また、Gitを利用したソフトウェア開発プロジェクトのための共有ウェブサービス GitHub(ギットハブ)もIDを公開すれば無料で利用できる
導入実績が多い 全世界に多数の開発者を抱える巨大プロジェクトLinux kernel のソースコード管理に使用されているほか、Ruby on Railsをはじめとする世界中の数多くのOSSプロジェクトで利用されている
また、Facebook社やAmazonなどをはじめとする大手ネット関連企業での利用も多い
さまざまな管理方式 分散型バージョン管理システムでありながら、公開リポジトリへの変更履歴管理方法のワークフローがいくつか選択可能
・集中型ワークフロー(従来のSubversionタイプ)
・統合マネージャー型ワークフロー:1人の管理者がいったん全変更を管理
・管理者&副管理者型ワークフロー:複数の管理者&副管理者がさまざまな内容やレベルで変更履歴を管理
コスト効果 Gitは高機能なバージョン管理システムでありながら、オープンソースでライセンス費用がかからないため、商用製品に比べコストを大幅に削減することが可能

TOPに戻る

Gitと同様の機能を提供する商用製品およびOSS

商用ソフトウェア製品では、BitKeeper、Plastic SCM、AccuRev、Perforce、オープンソースではCVS、Bazaar、Fossil、Apache Subversion、Mercurialが、Gitと同様の機能を提供しています。

TOPに戻る

Gitの商用製品との機能比較

商用製品との機能等の比較は以下のとおりです。

機能 Git Apache Subversion 商用製品A 商用製品B
管理方法 分散型 集中型 分散型 集中型
プラットフォーム Linux、Solaris、Mac OS X、Microsoft Windows AIX、Centos、Debian、Fedora、FreeBSD、HP-UX、NetBSD、OpenBSD、Mac OS X、Red Hat Linux、Solaris、SUSE Linux、Ubuntu、Microsoft Windows AIX、FreeBSD、HPUX、Linux、MacOS X、NetBSD、OpenBSD、Solaris、IRIX、SCO OpenServer、Microsoft Windows Linux、UNIX、Mac OS X、Microsoft Windows
クライアント Linux、Mac、Microsoft Windowsほか Linux、Mac、Microsoft Windowsほか Linux、Mac、Microsoft Windowsほか Linux、Mac、Microsoft Windowsほか
プロトコル HTTP、HTTPS、
FTP、rsync、
file://、 ssh://、
git://、WebDAV
HTTP、HTTPS、
file://、ssh://、
svn://、svn+ssh://
HTTP、SMTP、
file://、ssh://、
rsh
独自のRPCとSMP(ストリーミング・メッセージ・プロトコル)をTCP/IP上に実装
アトミック変更セット(すべての変更は、再現可能なスナップショットであること) × ×
グラフィカルなチェックイン・ツール ×(IDE経由)
動的なブランチ機能 × ×
事前のマージ機能 × ×
正確なリネーム処理 × ×
Peer-to-peer アーキテクチャ × ×
並行開発 × ×
マルチサイト開発 × △(シミュレーションのみ)
モバイル/オフラインでの変更機能 × ×
プリイベントトリガー △(限定的)
ポストイベントトリガー △(限定的)
複製リポジトリ × ×
自動整合性チェック × ×
全履歴の記録 × ×
最小限のハードウェア要件 × △(要件による)

TOPに戻る

Gitのユースケース

Gitは様々なプラットフォームに対応しており、小規模な開発からリモート拠点による大規模な開発まで様々なユースケースに対応可能です。

TOPに戻る

Gitの動作環境

前提となる動作環境は、以下のとおりです。(バージョン2.22.0の場合)

サーバ

  • OS
    ・Linux
    ・Solaris
    ・Microsoft Windows
    ・Mac OS X
  • GUI
    ・Linux
    ・Microsoft Windows
    ・Mac OS X

※バージョンによって異なりますので、詳細はお問い合わせください。

TOPに戻る

Gitのライセンス

Gitのライセンスは、GPLv2(GNU General Public License v2となっています。 GPLv2の適用範囲でソフトウェアのコピーや配布、ソースコードの公開を原則として、ソースコードの自由な改変も認められています。

TOPに戻る

Gitのダウンロード

Git ダウンロードページ
Git ソースコードページ

TOPに戻る

Gitのサポート

NRIではお客様のご要望に応じて様々な支援ができるサービスをご用意しました。
詳細は下記ページをご確認ください。

TOPに戻る

OpenStandiaに関する
資料請求・お問い合わせはこちら

  • 資料請求
  • お問い合わせ

※定期的にメンテナンスを実施しておりますが、一部情報が古い場合がございます。ご了承ください。

  • OpenStandiaサポート対象オープンソース|50種類以上のOSSのサポートをご提供します。
  • 人気midPoint
  • 人気Keycloak
  • 注目MongoDB
  • ForgeRock AM(OpenAM)
  • ForgeRock IDM(OpenIDM)
  • MongoDB
  • Postfix
  • Apache HTTP Server
  • ZABBIX
  • PostgreSQL
  • Apache Struts
  • Apache Kafka
  • Apache Hadoop
  • Apache Spark
  • Spring Framework
  • Apache Tomcat
  • Solr
  • iBATIS
  • DRBD
  • MySQL
  • JBoss
  • Ruby on Rails
  • Jaspersoft
  • OpenLDAP
  • Apache log4j
  • Apache Subversion
  • ForgeRock DS(OpenDJ)
  • Pacemaker
  • Samba
  • Red Hat Enterprise Linux
  • Nginx
  • BIND
  • Dovecot
  • Pentaho
  • sendmail
  • Courier-IMAP
  • ForgeRock DS(OpenDJ)
  • Heartbeat
  • Hibernate
  • Hinemos
  • MyBatis
  • MySQL Cluster
  • Apache Axis2
  • Squid
  • OpenSSO