Git(ギット)。プログラムソースコードやサイトコンテンツなどの変更履歴を記録・追跡するための分散型バージョン管理システムです。

オープンソースのバージョン管理/Gitとは

Git(ギット)。プログラムソースコードやサイトコンテンツなどの変更履歴を記録・追跡するための分散型バージョン管理システムです。

Git(ギット)とは、プログラムソースコードやサイトコンテンツなどの変更履歴を記録・追跡するための分散型バージョン管理システムです。

目次

「Git」基本情報
・概要
・主な特徴
・同様製品(概要情報)
・導入事例
・ライセンス情報
・ダウンロード

「Git」参考情報 第1回 Gitとは(OSSエンジニア入門)
・【1】Gitとは
・【2】Gitの特徴
・【3】まとめ

「Git」参考情報 第2回 Gitの使い方
・【1】用語説明
・【2】Gitの使い方
・【3】参考サイト
・【4】まとめ

「Git」参考情報 第3回 WindowsへのGitのインストール
・【1】インストーラーのダウンロード
・【2】Gitインストール
・【3】初期設定
・【4】その他のGitクライアント
・【5】まとめ

「Git」参考情報 第4回 Gitのコマンド
・【1】主なGitコマンド
・【2】参考サイト
・【3】まとめ

「Git」参考情報 第5回 EclipseでGitを使う
・【1】統合開発環境「Eclipse」とは
・【2】EclipseにGitプラグインをインストール
・【3】EGitの使い方
・【4】まとめ

TOPに戻る

「Git」基本情報

概要

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

Gitの最大の特徴は、「分散型」である点です。まず、ローカルPCの各ユーザのワーキングディレクトリに、「全履歴を含んだリポジトリの完全コピー」(ローカルリポジトリ)が作成されます。
リポジトリとは、ファイルやディレクトリの状態が記録される管理ファイルのようなものです。変更履歴を管理したいディレクトリをリポジトリの管理下に配置することで、そのディレクトリ内のファイルやディレクトリの変更履歴を記録することができます。
つまり、ネットワークに接続していない状態であっても、このローカルリポジトリに対して、コードの変更履歴保存(コミット)や、過去履歴確認などのほとんどの作業を行うことができます。これが「分散型」と呼ばれる理由となっています。
従来のバージョン管理ツールは、ネットワーク接続がほぼ必須であったため、この分散型のインパクトは大きいものがあります。

似たような名前で、「GitHub(ギットハブ)」というものがあります。GitHubは、このGitの仕組みを利用して、世界中のエンジニアが、プログラムコードやデザインデータなどを保存や公開できるようにしたウェブサービスです。
MicrosoftやGoogleのエンジニア達も使用していると言われています。OSSの公開などに使われることも多く、急拡大しています。

主な特徴

【高速】
Gitは、当初からスピードとパフォーマンスを最重要視して、高速かつスケーラブルになるよう開発されています。ある調査では、従来のバージョン管理システムと比較して10倍~100倍高速に動作するという結果が出ています。

【高機能】
基本的なバージョン管理機能のほかに、コミット取り消し(ロールバック)、複数コミットを1つのコミットとして実行するなど、さまざまな機能を備えています。また、集中型バージョン管理システム「Subversion」と連携できる機能も用意されています。

【完全性】
Gitに取り込まれるすべては、格納される前にチェックサムが取られ、その後、そのチェックサムで照合されるようになっています。つまり、Gitに認知されずにファイルの変更を行うことは不可能となっていて、この機能はGitの哲学に不可欠なものになっています。

同様製品(概要情報)

同様な機能を提供する製品として、次のようなものがあります。

オープンソース製品:「Subversion」、「CVS」など。

導入事例

Gitについて近年では、高機能かつ高速という点で、世界での利用ユーザーが爆発的に増えていて、GitHubと合わせて「バージョン管理のデファクトスタンダード」になりつつあります。「Ruby on Rails」をはじめとする世界中の数多くのOSSプロジェクトで利用されています。また、FacebookやAmazonなどの大手ネット関連企業も利用しています。

ライセンス情報

Gitのライセンスは、GPLv3(GNU General Public License Lv3)です。このライセンスに従うことを条件として、ソースコードの改変と公開が許可されています。

ダウンロード

ダウンロードページ

TOPに戻る

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

【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は、バージョン管理の標準となりつつあるため、理解しておいて損はないオープンソースツールです。

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

TOPに戻る

「Git」参考情報 第2回 Gitの使い方

【1】用語説明

Gitを使用するために理解しておくべき基本的な用語について説明します。

リポジトリ

「ファイル/ディレクトリの状態を記録するもの」です。変更内容は変更履歴として保存されていきます。
変更履歴管理対象ディレクトリをリポジトリの管理下に配置すると、対象ディレクトリ内のファイル/ディレクトリの変更履歴を記録できます。

リモートリポジトリ
専用サーバに配置される共有リポジトリです。マスターリポジトリとして複数人で共有します。

ローカルリポジトリ
自分のローカルPCに作成する個人用リポジトリです。
「リモートリポジトリをコピーして作成」「新規作成」の2種類の作成方法があります。
「リモートリポジトリのコピー作成」のことを、「クローン作成」と呼びます。

ワークツリー

「ローカルPC内のGit管理下にある作業用ディレクトリ」のことです。ユーザは、このディレクトリの中にあるファイルを編集します。

コミット

「編集したファイルの変更内容をローカルリポジトリに記録する」作業のことです。

コミットの際は、「コミットメッセージ」(コメント)の入力が必須です。

インデックス

「コミットされるファイルを登録しておくもの」です。概念的に、ローカルリポジトリとワークツリーの間にあります。

インデックスに登録してあるファイルのみコミットされます。

プッシュ(Push)

「ローカルリポジトリの内容をリモートリポジトリにアップロードする」ことです。

プル(Pull)

「リモートリポジトリの最新の状態をローカルリポジトリに取り込む」ことです。

他の編集者により、リモートリポジトリは更新されていきます。それらの更新情報をダウンロードして、ローカルリポジトリを最新の状態に更新します。

マージ

「1ファイルに対する複数の変更内容を統合する」作業です。

ファイル(A)をPullして、編集後、Pushした時に、すでに他の編集者がファイル(A)に対してPushしていた場合、マージ作業が必要です。

Gitが自動的に統合してくれます。自動的に統合できなかった場合は、手動での統合作業が必要です。

【2】Gitの使い方

ローカルPCにGitをインストールした後の基本的な使い方(流れ)について説明します。

1.「リモートリポジトリ」から「ローカルリポジトリ」を作成します。(クローン作成)

2.必要に応じて、「プル(Pull)」して、「リモートリポジトリ」の最新の状態を「ローカルリポジトリ」に反映させます。

3.「ローカルリポジトリ」の「ワークツリー」にてファイル編集を行います。

4.変更対象ファイルを「インデックス」に登録します。

5.「コミット」を行います。

6.「プッシュ(Push)」をして、「リモートリポジトリ」に変更内容をアップロードします。
※競合した場合は、「マージ」を行います。

【3】参考サイト

Gitの使い方に関する参考サイトを紹介します。

Gitの使い方について、分かりやすく解説してくれています。「入門編」「発展編」「プルリクエスト編」「逆引きGit」のカテゴリに分かれていて、入門サイトとして最適です。
→サルでもわかるGit入門〜バージョン管理を使いこなそう〜

【4】まとめ

今回は、基本的なGitの使い方について紹介しました。

まず、基本的な用語を覚えて、全体的な大まかな使い方について把握できれば、Gitについて理解しやすくなります。

どのように使えて、どのように便利なのか、実際に使って試してみてください。

TOPに戻る

「Git」参考情報 第3回 WindowsへのGitのインストール

【1】インストーラーのダウンロード

Git純正Windowsクライアントのインストールを行います。

WindowsへGitをインストールする準備として、インストーラーのダウンロードを行います。

以下のダウンロードサイトから、インストーラーをダウンロードできます。

「Windows」の部分をクリックすると、32bit版のダウンロードが開始されます。
※64bit版をダウンロードする場合には、32bit版ダウンロードを中止して、64bit版をクリックします。
→Git--local-branching-on-the-cheap →Downloads

【2】Gitインストール

インストール

ダウンロードしたインストーラーを実行して、Gitのインストールを行います。

起動

インストールが完了したら、スタートメニューの中にある「Git」→「Git Bash」をクリックして、「Git Bash」を起動します。

確認

コンソールに『$ git --version』を打ち込んでみます。
バージョンが表示されたらインストール成功です。

【3】初期設定

「ユーザ名」と「メールアドレス」設定

以下のコマンドを入力して設定を行います。

『$ git config --global user.name "ユーザ名"』
『$ git config --global user.email "メールアドレス"』

設定内容は、ユーザのホームディレクトリに作成される「.gitconfig」ファイルに記録されます。

日本語表示設定

デフォルトのままでは、日本語を含む文字列が正しく表示されません。

以下のコマンドを打ち込んで、日本語が正しく表示されるように設定します。

『$ git config --global core.quotepath off』

【4】その他のGitクライアント

上記で紹介したのは、Git純正Windowsクライアントのインストール/設定方法です。これ以外にも、Windowsで使用できるGitクライアントは数多くあります。

主なGitクライアント(Git連携機能)

・Git for Windows
・SmartGitHg
・Cygwin
・msys2/mingw-w64
・Visual Studio Tools for Git
・SouceTree
・GitExtensions
・TortoiseGit
・GitKraken
・Visual Studio Code
など

ここに示されてないツールもありますし、新しいGitクライントも誕生します。ツールとしてではなく、IDE(統合開発環境)などの中にGit連携機能として取り込まれている場合もあります。

それぞれのクライアント(連携機能)ごとに、CUIベース/GUIベース、機能、使い勝手、使用できるGitバージョンなど、強みと弱みがあります。

使用するツールを指定された場合であれば、そのツールを使用すればよいですが、個人的に使ってみる場合は、「どれが一番自分にとって使いやすいのか」という観点で、いろいろ探ってみることをおすすめします。

使用しているIDE/コードエディタにGit連携機能が付いているなら、まず、それで試してみるというのもよいかもしれません。

【5】まとめ

今回は、「Windows環境へGitをインストールする方法」「その他の主なGitクライアント」について紹介しました。

インストールしただけでは意味がないので、コードをGitで管理する練習をやってみて、Gitとはどのようなものなのかについて、実際に試してみてください。

TOPに戻る

「Git」参考情報 第4回 Gitのコマンド

【1】主なGitコマンド

Gitには、覚えきれないほどの数多くのコマンドが存在しています。しかし、日常的に使用する基本的なコマンドは、それほど多くはありません。

使用頻度が高い基本的なコマンドを紹介します。

リポジトリ管理系

コマンド機能
git initリポジトリ作成
git clone既存リポジトリの複製作成
git fsckリポジトリ正当性チェック実行
git gcリポジトリ最適化(不要オブジェクト削除)

作業系

コマンド機能
git status変更が加えられたファイルを表示
git diff変更点をdiff形式で表示
git addコミット対象ファイルを指定
git commit変更点をコミット
git logコミットログを表示
git resetコミット取り消し(直前のみ)
git revert作業ツリー全体を指定するコミット時点の状態に戻す
git branchブランチ情報表示/ブランチ作成
git checkoutブランチ切り替え
git show-branchブランチ作成/変更/マージの履歴表示
git mergeローカルブランチをマージする
git tagコミットにタグを付ける
git stash現在の作業ツリーの状態を一時的に保管
git rebaseブランチ派生元(上流)を変更

ほかのリポジトリとの連携系

コマンド機能
git pullほかのリポジトリ変更点をローカルリポジトリにマージ
git pushリモートリポジトリに自分のリポジトリの内容を送信

【2】参考サイト

参考サイト(1)

ローカルリポジトリ作成、クローン作成、コミット、ブランチ、マージなど、それぞれのコマンドについて、各オプションの使い方と共にまとめられています。
→【Git】基本コマンド

参考サイト(2)

GitHubと接続して、Gitを使う手順/コマンドについて、多くの概念イラスト/スクリーンショットにより、分かりやすくまとめられています。
「9個のコマンドを覚えればなんとかなる」として、実際の作業順通りに説明されています。
→初心者がプルリクまでに覚えるべきたった 9つの厳選 Gitコマンド

参考サイト(3)

Gitコマンドに関する逆引きリファレンス集です。
「基本操作」「ブランチ操作」「コミットログ操作」「リモート操作」「トラブルシューティング」などのカテゴリ別に分かれていて、やりたいことからGitコマンドを見つけ出せます。
Gitを使用するにあたって、ブックマークしておくべきリファレンスになっています。
→サルでもわかるGit入門〜バージョン管理を使いこなそう〜 →逆引きGit

【3】まとめ

今回は、「基本的なGitコマンド」と「参考サイト」について紹介しました。

Gitには非常に多くのコマンドがありますが、基本的なものを覚えるだけでもGitを使えます。

まず、基本編を覚えて、その後、少しずつ、他の便利なコマンドも覚えていけば、より便利にGitを使えるようになります。

最低でも10前後のコマンドを使えるようになれば、とりあえずGitを使えます。参考サイトを参照しながらチャレンジしてみてください。

TOPに戻る

「Git」参考情報 第5回 EclipseでGitを使う

【1】統合開発環境「Eclipse」とは

Eclipse(イクリプスorエクリプス)は、オープンソース高機能統合開発環境 (IDE)です。

IBMによって開発されています。クロスプラットフォーム/Java実装です。Java/C++/C#/Python/Ruby/JavaScriptなど多くの言語に対応します。

プラグインによって、さまざまな機能拡張できる点が特徴です。

参考サイト Eclipseインストール

Eclipseのインストール方法を説明しているサイトです。Windows環境に対して「Java+Eclipse」をインストールしています。
→AGILE →ホーム →技術情報 →Eclipseインストール01 ( Java開発環境構築 )

【2】EclipseにGitプラグインをインストール

EclipseにはGit対応プラグインもあり、インストールするとEclipse上でGitを操作できるようになります。

Eclipse用Git対応プラグイン「EGit」

「EGit」は、Eclipse用として代表的なGit対応プラグインです。

コミット、アップデート、ブランチ作成、プッシュなど、Gitに関する一通りの操作を行えます。

「EGit」インストール

「EGit」は Eclipseのソフトウェアマネージャからインストール可能です。

1.Helpメニューの[Install New Software... ]を選択します。

2.[Add]ボタンをクリックしてサイトを追加します。

3.[Name]に「EGit」と入力します。[Location] に「http://download.eclipse.org/egit/updates」と入力して、[OK]ボタンをクリックします。

4.利用可能なソフトウェアが表示されます。問題なければすべて選択します。

5.インストールするコンポーネントを確認して[Next]ボタンをクリックします。

6.利用条件が表示されるのでアクセプトします。[Finish]ボタンをクリックします。

7.EGitのインストールが始まります。完了したらEclipseを再起動して、インストール完了です。

「EGit」初期設定

[Preference]→[Team]→[Git]で、名前とメールアドレスを設定します。

Gitに対して、すでに設定してある場合は、その情報が表示されます。

※Windows環境では、HOME環境変数を設定しておく必要があります。

【3】EGitの使い方

EGitをインストールすると、Eclipse上でGit機能を使用してコードファイルのバージョン管理ができます。

コミットされていない変更箇所にマークが表示されるなど、効率的な開発を行えます。

参考サイト

Egitの使い方がまとめられています。ローカルリポジトリ作成、リモートリポジトリ接続、ブランチ作成、コミットなど、順を追って説明されています。
→hiromasa.another :o) →Eclipse EGit の使い方(1/2)

注意点

EclipseでGit管理するプロジェクトにリンクしたファイルに対して、OSからファイル操作などを行うと予期せぬ状態になることがあります。

【4】まとめ

今回は、「EclipseでGitを使う方法」について紹介しました。

他の統合開発環境でもGit対応のプラグインがありGit管理を行えるものがあります。

統合開発環境上でGit管理/操作を行えるようになると開発効率が上昇します。

「統合開発環境」と「Git」が一体となった環境で、さらに便利なGitバージョン管理にトライしてみてください。

TOPに戻る

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

Git最新TOPICS

【PICKUP】Microsoft、『今後のWindowsOS開発は「Git」を使用して行なう』と発表---「Git Virtual File System(GVFS)」で巨大リポジトリに対応(2017年05月26日 20:03)

Microsoftは、5月24日(米国時間)、 『今後、同社のエンジニアのほとんど全員が、バージョンコントロールシステム「Git」を使ってWindowsOSを開発していく』と発表した。 【Gitとは】 分散型バージョン管理システム https://www.ossnews.jp/oss_info/Git 【ポイント】 ・WindowsのGitリポジトリには約350万ファイル(約3...

Git最新CLOSEUPコラム

  • オープソース書籍(サイド)

OSS×Cloud ACCESS RANKING

  • OSSNEWSに広告を掲載しませんか?

facebook

twitter