Linux
 Computer >> コンピューター >  >> システム >> Linux

Git初心者向けガイド:バージョン管理の基本をやさしく解説

Git初心者向けガイド:バージョン管理の基本をやさしく解説

Linuxユーザーなら、新しいプログラムをダウンロードするときや、CVSやSubversionといったバージョン管理システムを調べているときに、「Git」という名前を目にしたことがあるかもしれません。Gitは、Linuxカーネルの生みの親として知られるLinus Torvalds氏が、既存のソリューションに満足できなかったことをきっかけに開発したリビジョン管理システムです。設計における最大の重点は速度、より正確には効率性に置かれており、従来のシステムが抱えていた多くの欠点を解消しながら、はるかに短い時間で処理を実行します。この記事では、これからGitを学びたい初心者の方向けに、基本的な使い方をわかりやすく解説します。

Gitでできること

例えば、クライアント向けにWebサイトを作っているとしましょう。クライアントが要望を伝え、あなたがデザインし、クライアントが確認して修正を依頼する——この繰り返しの中で、サイトは変化し成長していきます。ところが後になって、クライアントから「去年の9月の見た目の方が好きだった」と言われたらどうでしょう? 通常であればこれは大きな問題です。当時のファイルやデータがすべて残っているとは限りませんし、コードが大きく変わっていれば、元に戻すのは困難か、場合によっては不可能です。

リビジョン管理システムの目的は、まさにこうした問題をほぼすべて解決することにあります。コードやファイルへの変更をすべて記録しておけば、いつでも好きな時点の状態に戻せるのです。

Gitの仕組み

各プロジェクトのディレクトリは、それぞれ独立したGitリポジトリになります。プロジェクトのファイルをそのディレクトリに置き、定期的に「現在の状態を記録して」とGitに指示します。この記録操作をcommit(コミット)と呼びます。コミットするたびに(頻繁に行うのが望ましい)、Gitは追跡対象として指定されたすべてのファイルを確認し、変更差分だけを「.git」ディレクトリに保存します(新しいファイル全体を保存するわけではありません)。各コミットは、プロジェクト開発における新しいセーブポイントとなります。

必要に応じて、ローカルのGitリポジトリをGitHubなどの外部ホストや自前のGitサーバーにプッシュすることもできます。これにより、複数のコントリビューターが各自のローカルリポジトリに素早く頻繁にコミットし、それらをまとめて1回の更新としてオンラインリポジトリへ反映できるようになります。

これは、他のバージョン管理システム(VCS)と比べてGitが高速に使える理由のひとつです。ローカルリポジトリには頻繁にコミットでき、その都度サーバーへアップロードして時間と帯域幅を浪費する必要がないからです。

Gitの入手方法

多くのLinuxディストリビューションには、Gitがプリインストールされています。もしインストールされていなくても、ほとんどのリポジトリで提供されているため、ソフトウェアセンターやパッケージマネージャーから簡単に導入できます。

Git初心者向けガイド:バージョン管理の基本をやさしく解説

ターミナルからインストールする場合は、以下のコマンドを使用します:

# Debian/Ubuntu
sudo apt install git-all
 
# Fedora
sudo dnf install git-all

別のプラットフォームを使っている場合や、リポジトリを利用できない環境では、公式サイトからパッケージをダウンロードして手動でインストールすることも可能です。

Gitの使い方

ローカルのGitリポジトリを作成する手順はシンプルで、短時間で完了します。まず、プロジェクト用のディレクトリを作成し、ターミナルでその場所に移動しましょう。

cd /my-git-directory

次のコマンドでGitリポジトリを初期化します:

git init

これにより、リポジトリ情報を格納するための隠しディレクトリ「.git」が作成されます。続いて、ファイルを追加していきましょう。ここでは例として、簡単なREADMEファイルを作成し、リポジトリの監視対象リストに追加してから、コミットしてみます。

# 新しいファイルにテキストを挿入
echo "TODO: Create documentation" > README.txt
 
# Gitにこのファイルの変更を追跡するよう指示
# この操作はファイルごとに1度だけでOK(詳細は後述)
git add README.txt
 
# 状態をGitリポジトリに保存
git commit README.txt

実行するとテキストエディタ画面が開きます(どのエディタが起動するかは、ディストリビューションや設定によって異なります)。ここには、このコミットに関するメモを入力します。通常は、前回のコミット以降に行った変更の簡単な要約を記載します。保存してエディタを終了すると、コミットが正常に完了します。

Git初心者向けガイド:バージョン管理の基本をやさしく解説

上記の操作中に「ユーザーを認識できない」というエラーが表示された場合は、自分の情報をGitに登録する必要があります。以下のコマンドを入力するだけで設定できます:

git config --global user.name "Your_Username"
git config --global user.email "your_email_address@mailserver.com"

これで、そのファイルの現在の状態のスナップショットが作成されました。以降の変更(コミットした分)は、このスナップショットの上に積み重ねられて保存されます。

上の例のように、ファイルごとに個別に追加・コミットしていると、すぐに面倒になってきます。そんなときは、次のコマンドで現在のディレクトリ内のすべてのファイルをまとめて追加できます:

# 末尾の「.」に注意
git add .

既知の変更済みファイルをすべて一度にコミットすることも可能です:

git commit -a
Git初心者向けガイド:バージョン管理の基本をやさしく解説

その他にも、覚えておくと便利なGitコマンドがいくつかあります:

# 既存リポジトリの完全なクローンを作成(ソフトウェアプロジェクトのサイトなどから)
git clone (URL、例:git://github.com/github/linux-2.6.git)
 
# ファイルの移動・リネーム。bashで移動済みの場合も、削除して再追加する手間が不要
git mv (移動元) (移動先)
 
# ファイルを削除し、Gitリポジトリからも除去
git rm (対象)
 
# このリポジトリのブランチ一覧を表示
git branch
 
# Gitツリーに新しいブランチを作成
git branch (新しいブランチ名、例:"experimental")
 
# ブランチを切り替え
git checkout (ブランチ名、例:"experimental")
 
# 指定ブランチを現在のツリーにマージ
git merge (ブランチ)

もちろん、ここで紹介したのはGitの機能のごく一部にすぎません。Gitの基本を使いこなせるようになったら、次はGitHubの活用に挑戦してみましょう。プルリクエストにスクリーンショットやアニメーションを追加する方法などを学ぶことで、さらに快適な共同開発が実現できます。

  1. タッチタイピング(ブラインドタッチ)入門ガイド|初心者が正しく身につける方法

    タッチタイピング(ブラインドタッチ)とは、キーボードを見ずに10本の指すべてを使って文字を入力する技術のことです。タイピング速度を大幅に向上させたいなら、ぜひ習得しておきたいスキルの一つです。この記事では、これからタッチタイピングを学ぼうとしている初心者の方向けに、基本の考え方から具体的な練習方法までをわかりやすく解説します。 タッチタイピングとは? 「タッチタイピング」という名前から、タッチスクリーン操作を連想する人もいますが、実際はまったく関係ありません。タッチタイピングとは、キーボードに目を落とさずに、すべての指で文字を打てる能力のことを指します。そのためには、各キーの位置を覚えるだけ

  2. HTMLとCSSの初心者向けガイド

    今日、私たちのサイトを支えているさまざまなテクノロジーを見つけることができますが、インターネット全体で最も重要な2つのファイルはHTMLとCSSです。はい、複雑なものが必要な場合は、それに対応するためのテクノロジーもさらに必要になります。ただし、単純な個人用Webページを作成するだけの場合は、HTMLとCSSだけで十分です。 基本の紹介 これは、HTMLとCSSの初心者向けガイドであり、簡単なサイトをできるだけ早く作成する方法を示しています。結果は必ずしも「標準に準拠」しているとは限りません。さらに微調整して拡張したい場合は、自分で読む必要があります。ただし、これはサイトであり、ほとんどのブ