マジセミドライブ

ウェビナー関連のニュースやITサービス&ツールの最新情報を随時配信します。

OSS情報

2020.01.01

【OSS情報アーカイブ】Git

【OSS情報アーカイブ】Git

※当記事に記載されている情報は、古くなっている場合があります。オフィシャルサイトで最新情報をご確認ください。

コンテンツ

「Git」とは

概要

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

Gitの最大の特徴は、「分散型」である点です。まず、ローカルPCの各ユーザのワーキングディレクトリに、「全履歴を含んだリポジトリの完全コピー」(ローカルリポジトリ)が作成されます。

リポジトリとは、ファイルやディレクトリの状態が記録される管理ファイルのようなものです。変更履歴を管理したいディレクトリをリポジトリの管理下に配置することで、そのディレクトリ内のファイルやディレクトリの変更履歴を記録することができます。

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

従来のバージョン管理ツールは、ネットワーク接続がほぼ必須であったため、この分散型のインパクトは大きいものがあります。

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

MicrosoftやGoogleのエンジニア達も使用していると言われています。OSSの公開などに使われることも多く、急拡大しています。

導入事例

Gitについて近年では、高機能かつ高速という点で、世界での利用ユーザーが爆発的に増えていて、GitHubと合わせて「バージョン管理のデファクトスタンダード」になりつつあります。

「Ruby on Rails」をはじめとする世界中の数多くのOSSプロジェクトで利用されています。また、FacebookやAmazonなどの大手ネット関連企業も利用しています。

オフィシャルサイト情報

■オフィシャルサイト

→git-scm.com

■ライセンス情報

Gitのライセンスは「 the GNU General Public License version 2.0」です。

詳細について、こちらを参照ください。
→Git →About →Free and Open Source

■ダウンロード

→Git →Downloads

同様製品

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

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

「Git」の主な特徴

■高速

Gitは、当初からスピードとパフォーマンスを最重要視して、高速かつスケーラブルになるよう開発されています。

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

■高機能

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

また、集中型バージョン管理システム「Subversion」と連携できる機能も用意されています。

■完全性

Gitに取り込まれるすべては、格納される前にチェックサムが取られ、その後、そのチェックサムで照合されるようになっています。

つまり、Gitに認知されずにファイルの変更を行うことは不可能となっていて、この機能はGitの哲学に不可欠なものになっています。

【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」参考情報 第2回 Gitの使い方

【1】用語説明

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

■リポジトリ

「ファイル/ディレクトリの状態を記録するもの」です。変更内容は変更履歴として保存されていきます。

変更履歴管理対象ディレクトリをリポジトリの管理下に配置すると、対象ディレクトリ内のファイル/ディレクトリの変更履歴を記録できます。

リモートリポジトリ

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

ローカルリポジトリ

自分のローカルPCに作成する個人用リポジトリです。

「リモートリポジトリをコピーして作成」「新規作成」の2種類の作成方法があります。

「リモートリポジトリのコピー作成」のことを、「クローン作成」と呼びます。

■ワークツリー

「ローカルPC内のGit管理下にある作業用ディレクトリ」のことです。

ユーザは、このディレクトリの中にあるファイルを編集します。

■コミット

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

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

■インデックス

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

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

■プッシュ(Push)

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

■プル(Pull)

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

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

■マージ

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

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

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

【2】Gitの使い方

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

①「リモートリポジトリ」から「ローカルリポジトリ」を作成します。(クローン作成)
②必要に応じて、「プル(Pull)」して、「リモートリポジトリ」の最新の状態を「ローカルリポジトリ」に反映させます。
③「ローカルリポジトリ」の「ワークツリー」にてファイル編集を行います。
④変更対象ファイルを「インデックス」に登録します。
⑤「コミット」を行います。
⑥「プッシュ(Push)」をして、「リモートリポジトリ」に変更内容をアップロードします。※競合した場合は、「マージ」を行います。

【3】参考サイト

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

Gitの使い方について、分かりやすく解説してくれています。「入門編」「発展編」「プルリクエスト編」「逆引きGit」のカテゴリに分かれていて、入門サイトとして最適です。

→サルでもわかるGit入門〜バージョン管理を使いこなそう〜

【4】まとめ

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

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

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

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

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

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

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

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

→Git →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とはどのようなものなのかについて、実際に試してみてください。

「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)

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

→Qiita →【Git】基本コマンド

■参考サイト(2)

GitHubと接続して、Gitを使う手順/コマンドについて、多くの概念イラスト/スクリーンショットにより、分かりやすくまとめられています。

「9個のコマンドを覚えればなんとかなる」として、実際の作業順通りに説明されています。

→akiyoko blog →初心者がプルリクまでに覚えるべきたった 9つの厳選 Gitコマンド

■参考サイト(3)

Gitコマンドに関する逆引きリファレンス集です。

「基本操作」「ブランチ操作」「コミットログ操作」「リモート操作」「トラブルシューティング」などのカテゴリ別に分かれていて、やりたいことからGitコマンドを見つけ出せます。

Gitを使用するにあたって、ブックマークしておくべきリファレンスになっています。

→サルでもわかるGit入門〜バージョン管理を使いこなそう〜 →逆引きGit

【3】まとめ

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

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

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

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

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

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

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

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

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

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

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

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

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

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

■「EGit」インストール

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

①Helpメニューの[Install New Software… ]を選択します。
②[Add]ボタンをクリックしてサイトを追加します。
③[Name]に「EGit」と入力します。[Location] に「http://download.eclipse.org/egit/updates」と入力して、[OK]ボタンをクリックします。
④利用可能なソフトウェアが表示されます。問題なければすべて選択します。
⑤インストールするコンポーネントを確認して[Next]ボタンをクリックします。
⑥利用条件が表示されるのでアクセプトします。[Finish]ボタンをクリックします。
⑦EGitのインストールが始まります。完了したらEclipseを再起動して、インストール完了です。

■「EGit」初期設定

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

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

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

【3】EGitの使い方

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

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

■注意点

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

【4】まとめ

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

他の統合開発環境でもGit対応のプラグインがありGit管理を行えるものがあります。統合開発環境上でGit管理/操作を行えるようになると開発効率が上昇します。

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

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

この記事のタグ一覧

おすすめの記事

【デジタル寺田の3分用語解説】「 2029年問題 」とは?📅

デジタル寺田の3分用語解説

2024.11.18

【デジタル寺田の3分用語解説】「 2029年問題 」とは?📅

「 2029年問題 」とは、高校でのデジタル教育改革により、新入社員と既存社員間でデジタルスキル格差が拡大する懸念を指します。企業は早急に対応が求められています。この格差は、企業競争力や業務効率にも、影響を及ぼす可能性があります。

【デジタル寺田の3分用語解説】「 経済産業省:コンテンツ制作のための 生成AI 利活用ガイドブック 」とは?📘

デジタル寺田の3分用語解説

2024.11.18

【デジタル寺田の3分用語解説】「 経済産業省:コンテンツ制作のための 生成AI 利活用ガイドブック 」とは?📘

経済産業省による「 生成AI 利活用ガイドブック 」は、企業やクリエイター向けに、安心して「生成AI」を利用するための、「指針」「実例」「注意点」を明示しています。「業務効率化」や「新しいアイデア創出」の支援を目的としています。

【デジタル寺田の3分用語解説】「 VMWare 問題 」とは?🖥️

デジタル寺田の3分用語解説

2024.11.18

【デジタル寺田の3分用語解説】「 VMWare 問題 」とは?🖥️

「 VMWare 」の仮想化技術は、「ITインフラの効率化」に大きく貢献する技術ですが、Broadcomによる買収後のライセンス変更が大きな問題として注目されています。柔軟で慎重な契約見直しが今後の鍵となります。