「Git」参考情報 第1回 Gitとは(OSSエンジニア入門)として、「【1】Gitとは」「【2】Gitの特徴」「【3】まとめ」について紹介。

「Git」参考情報 第1回 Gitとは(OSSエンジニア入門)

「Git」参考情報 第1回 Gitとは(OSSエンジニア入門)として、「【1】Gitとは」「【2】Gitの特徴」「【3】まとめ」について紹介。

■関連する比較ページ

【1】Gitとは

Git(ギット)とは、オープンソース分散型バージョン管理システムです。プログラムソースコード/設定ファイル/サイトコンテンツなどの変更履歴を記録/追跡管理します。

■「バージョン管理システム」とは

コンピュータ上で作成/編集されるファイルの変更履歴を管理するためのシステムです。特にソフトウェア開発におけるソースコードの変更履歴管理として多く用いられます。

基本的な目的

管理対象ファイルの「作成/変更日時」「作成/変更ユーザ」「変更点」などの履歴を保管/管理することにあります。

多人数による編集に対応

多くのバージョン管理システムでは、複数の人間がファイル編集に関わる状況を想定しています。

バージョン管理システムを使用しない環境では、ファイル(1)について、編集者(A)が作業中に、編集者(B)が編集して、その後、編集者(A)が確定すると、編集者(B)の編集内容が消失してしまいます。

バージョン管理システムを使用すれば、このような同一ファイルに対する競合の発生を防ぐことができます。

ソフトウェア開発において、バージョン管理システムは必要不可欠な存在となっています。

■「Git」と「GitHub」の違い

「Git」に似たような名前として「GitHub(ギットハブ)」というものがあります。

GitHubは、Gitの仕組みを利用して、世界中のエンジニアが、プログラムコード/デザインデータなどを保存/公開できるようにしたWebサービスです。

Microsoft/Googleのエンジニア達も使用しているといわれています。オープンソースソフトウェアの公開などに使われることも多く、急拡大しています。「バージョン管理といえばGitHub」といわれるほどのデファクトスタンダードになりつつあります。

【2】Gitの特徴

■分散型

Gitの最大の特徴は「分散型」という点にあります。ローカルPCの各ユーザのワーキングディレクトリに、「全履歴を含んだリポジトリの完全コピー」(ローカルリポジトリ)が作成されます。リポジトリとは、ファイル/ディレクトリ状態が記録される管理ファイルです。

変更履歴管理したいディレクトリを、リポジトリディレクトリの下に配置すれば、そのディレクトリ内のファイル/ディレクトリの変更履歴を記録できます。

ネットワークに接続していない状態であっても、このローカルリポジトリに対して、コード変更履歴保存(コミット)、過去履歴確認などのほとんどの作業を行うことができます。

従来の多くのバージョン管理ツールは、ネットワーク接続が必須であったため、Gitの登場は大きなインパクトを与えました。

■高速処理

Gitは、Linuxカーネルの生みの親「Linus Torvalds」氏が、Linuxカーネルの巨大プロジェクトにおいて、ソースコードを効率良く管理するために開発したものです。巨大プロジェクトにも対応できるように、高速性/スケーラブルに重点が置かれて開発されています。

ある調査において、従来のバージョン管理システムと比較して10倍~100倍高速に動作するという結果が出ています。

■高機能

基本的なバージョン管理機能のほかに、「コミット取り消し(ロールバック)」「複数コミットを1つのコミットとして実行」など、さまざまな機能を備えています。

■完全性

管理対象のファイル/ディレクトリに対して、チェックサムでの照合が行われるため、すべての変更情報を漏らさず管理できます。

【3】まとめ

今回は、Gitの概要について紹介しました。

Gitは、バージョン管理の標準となりつつあるため、理解しておいて損はないオープンソースツールです。

次回以降では、具体的な使用方法などについて紹介していきます。

Git最新CLOSEUPコラム

イベント情報

セミナー講演資料

無料資料プレゼント

2021/03/04 セキュリティDAYS Keyspider資料

講演資料を見るには、 プライバシーポリシーに同意して、送付先メールアドレスをご入力しご請求ください。

またご入力いただきました情報は、当該資料の作成・提供企業とも共有させていただき、当社及び各社のサービス、製品、セミナー、イベントなどのご案内に使用させていただきます。

本資料を見るには次の画面でアンケートに回答していただく必要があります。



セミナー講演資料公開中

ローコード/ノーコードのツール比較と内製化 ~ユーザー企業は、ノーコード/ローコードで内製化できるのか?~

エンジニアにとって「情報発信」は重要なのか? ~テックピット DEVELOPERS RESKILLING CONFERENCE クロージングセッション~

リアルタイム性の高いIoTの課題とは?スマートシティを支えるMQTT ~IoTメッセージングプラットフォームを活用し、セキュリティ確保や通信到達保障を簡単に実現~

  • オープソース書籍(サイド)
  • OSSNEWSに広告を掲載しませんか?

facebook

twitter