Linux で Git を使う

Linux で Git を使い始めるための入門ガイドへようこそ。このガイドは Git と GitLab の基本的な使い方を説明します。

Git の概要

アプリケーションを作るコードは、システム上のフォルダとファイルの集合として保存されています。Git はその集合をバックアップ、共有、複製するためのアプリケーションです。Git はバージョン管理システムとして、コードの変更を追跡し、他の人と共同作業できます。オープンソースコミュニティで広く使われている強力なツールです。GitLab は Git リポジトリをオンラインでホスト・管理できる Web ベースのプラットフォームで、共同作業や変更の追跡を容易にします。

リポジトリとは

repo(リポジトリの略)は、オンラインコピーを持つ Git 管理のローカルフォルダです。GitLab リポジトリは、プロジェクトを構成するファイルとフォルダの集合です。同じプロジェクトの独立したコピーである ブランチ を持てます。ブランチはメインバージョンに影響を与えずに変更できる、プロジェクトの別バージョンです。メインプロジェクトを止めずに新機能を試したりバグを直したりするのに便利です。ハードドライブ上のローカルリポジトリと、Git と GitLab でオンラインに保存されるリモートリポジトリがあります。

Git の使い方

システムに Git をインストールする必要があります。Debian ベースのシステムでは、apt コマンドでソフトウェアパッケージをインストールできます。ここでは Git バージョン管理システムを提供する Git パッケージをインストールします。sudo コマンドは、インストーラーがシステムにインストールする権限を与えます。

 sudo apt install git

GitLab へのアクセス

GitLab を使う前に、GitLab の Web サイトでアカウントを作成し、登録を完了する必要があります。

GitLab では、リポジトリの clonepushfetch などの Git 操作で、クライアント(あなた)と GitLab サーバー間の安全で認証された通信に SSH が必要です。clone はリポジトリのローカルコピーを作り、fetch はリモートの変更をローカルに取り込み、push は変更をサーバーリポジトリに送ります。SSH(Secure Shell)は安全なリモートアクセスを可能にし、鍵ペア で認証して安全な接続を確立するネットワークプロトコルです。SSH 鍵ペアは、ターミナルで ssh-keygen コマンドを使って生成できます。

 ssh-keygen

ファイル名を指定するか、Enter でデフォルトを使い、必要ならパスワードを設定します。デフォルト名を使った場合、ホームディレクトリの隠しフォルダ .ssh に 2 つの id_rsa ファイルができます。.pub ファイルが公開鍵で、テキストエディタで内容を確認できます。

GitLab アカウントにログインし、ユーザー設定を開きます。左側のナビゲーションメニューで「SSH Keys」をクリックします。公開鍵をコピーして Key フィールドに貼り付け、PC@Home などわかりやすいタイトルを付けます。「Add Key」をクリックして保存します。SSH 公開鍵が GitLab アカウントに追加され、GitLab リポジトリの認証に使えます。ssh -T コマンドで鍵と接続をテストし、GitLab からのウェルカムメッセージを確認できます。

 $ ssh -T git@ssh.gitlab.gnome.org
 Welcome to GitLab, @username!

基本的な Git コマンド

Git をインストールし、GitLab に SSH 鍵を設定したら、リポジトリ管理に必要な基本的な Git コマンドを見ていきましょう。これらのコマンドは、既存プロジェクトを最新の状態に保ち、安全に変更するのに役立ちます。

1. リポジトリの clone

clone は、リモートリポジトリのローカルコピーを作る処理です。GitLab にすでにあるプロジェクトで作業するときに便利です。リポジトリを clone するには、git clone の後にリポジトリ URL を指定します:

git clone https://gitlab.com/username/repository.git

https://gitlab.com/username/repository.git を clone したいリポジトリの URL に置き換えます。このコマンドは新しいディレクトリにリポジトリのローカルコピーを作ります。

2. リポジトリの状態確認

ローカルリポジトリに変更があるか、現在の状態を確認するには:

git status

このコマンドは、ローカルコピーで変更、追加、削除されたファイルを表示します。

3. リモートリポジトリ

リモートリポジトリは、GitLab などオンラインでホストされているプロジェクトの版です。コードが保存され、他の人がアクセスできる中央の場所として機能します。プロジェクトを clone するとき Git が作るデフォルトのリモートリポジトリは origin です。次のコマンドでリモートリポジトリを追加、削除、一覧表示できます:

  • リモートの一覧:

    ローカルプロジェクトにリンクされているリモートリポジトリを確認するには:

    git remote -v

    このコマンドはすべてのリモートとその URL を一覧表示します。通常、ここに origin が表示されます。

  • リモートの追加:

    新しいリモートリポジトリを追加するには:

    git remote add <name> <url>

    <name> をリモート名、<url> をリポジトリ URL に置き換えます。

  • リモートの削除:

    リモートリポジトリを削除するには:

    git remote remove <name>

    <name> を削除するリモート名に置き換えます。

4. リモートリポジトリから変更を取得

ローカルコピーに適用せず、リモートリポジトリの変更内容を確認するには:

git fetch origin

このコマンドはリモートリポジトリから最新の変更を取得しますが、ローカルブランチにはマージしません。取り込む前に更新内容を確認する方法です。

5. ローカルリポジトリのリセット

ローカルリポジトリをリモートと完全に一致させたい場合は、ハードリセットを使えます。警告: ローカルの変更はすべて上書きされます。

git reset --hard origin/branch-name

branch-name をリセットしたいブランチ名に置き換えます。このコマンドはローカル変更を破棄し、ローカルリポジトリをリモートと同一にします。

6. コミット履歴の表示

リポジトリに加えられた変更の履歴を見るには:

git log

このコマンドは、各変更の作者、日付、メッセージを含むコミット履歴を表示します。いつどんな変更が行われたかを把握するのに便利です。

まとめ

これらの基本的な Git コマンドは、リポジトリの操作、ローカルコピーの更新、リモートリポジトリの安全な管理に役立ちます。clone、状態確認、リモート管理は Git でプロジェクトを扱ううえでの基本スキルです。