📢 Webサイト閉鎖と移転のお知らせ
このWebサイトは2026年9月に閉鎖いたします。
新しい記事は移転先で追加しております。(旧サイトでは記事を追加しておりません)
細 Wiki がページ「Gitの概要」を「Gitの基礎 - Gitの概要」に、リダイレクトを残さずに移動しました |
|||
| (同じ利用者による、間の5版が非表示) | |||
| 30行目: | 30行目: | ||
なお、分散型のバージョン管理システムには、Gitの他にも、Bazzar、Mercurial、monotone、darcs等がある。<br> | なお、分散型のバージョン管理システムには、Gitの他にも、Bazzar、Mercurial、monotone、darcs等がある。<br> | ||
Gitはその中でも大変良く使用されているツールである。<br> | Gitはその中でも大変良く使用されているツールである。<br> | ||
<br><br> | |||
== Gitの基礎用語 == | |||
下表に、Gitを使用する上で必要な用語を示す。<br> | |||
<center> | |||
{| class="wikitable" | style="background-color:#fefefe;" | |||
|- | |||
! style="background-color:#00ffff;" | 用語 | |||
! style="background-color:#00ffff;" | 説明 | |||
|- | |||
| リポジトリ || データを保存する場所。プロジェクトの全ファイルとその変更履歴を含む完全なデータベース。<br>Gitでは、このリポジトリ単位でデータを管理する。<br>修正履歴も保存されている。 | |||
|- | |||
| リモートリポジトリ || サーバにあるリポジトリ。<br>サーバに保存され、チーム内で共有される。<br><br>代表的なサービスとしてGitHub、GitLab、Bitbucketなどがある。 | |||
|- | |||
| ローカルリポジトリ || ローカル (自身のPC) に保存されているリポジトリ。<br>開発者が直接作業を行う場所。 | |||
|- | |||
| クローン || リモートリポジトリを複製すること。<br>修正履歴なども複製されて、完全なコピーが作成される。 | |||
|- | |||
| ブランチ || 一連の修正を、主流から枝のように分岐させて管理するもの。<br>ブランチでの修正内容は他のブランチの影響を受けないため、<br>同じリポジトリで同時に複数の開発を行うことができる。<br><br>デフォルトブランチはmain (またはmaster) と呼ばれる。 | |||
|- | |||
| チェックアウト || 他のブランチへ移動し、作業ディレクトリを任意のコミット状態にすること。<br><code>git switch</code>コマンドでも同様の操作が可能。 | |||
|- | |||
| ステージング (add) || コミットする前に、変更したファイルをステージングエリアに追加すること。<br>どの変更をコミットに含めるか選択できる。 | |||
|- | |||
| コミット || 修正内容をローカルリポジトリに反映すること。<br>コミットメッセージを付けて変更内容を記録する。<br><br>各コミットには一意のハッシュIDが付与される。 | |||
|- | |||
| プッシュ || ローカルリポジトリの修正内容をリモートリポジトリに反映すること。<br>チームメンバーと変更を共有する際に使用。 | |||
|- | |||
| プル || リモートリポジトリの修正内容をローカルリポジトリに反映すること。<br><code>git fetch</code> (変更の取得) と <code>git merge</code> (変更の統合) の組み合わせ。 | |||
|- | |||
| マージ || 異なるブランチの修正内容を統合すること。<br>マージ先とマージ元の両方に変更履歴が残る。<br><br>開発完了した機能を統合する際などに使用。 | |||
|- | |||
| リベース || ブランチの基点を別のコミットに移動すること。<br>履歴を直線的に保つことができるが、共有済みのブランチには使用を避ける。 | |||
|- | |||
| コンフリクト || マージする場合に、リモートとローカルで同じファイルの同じ箇所に対して修正がされており、自動でマージできないこと。<br>手動で、両方の修正を合わせた内容に編集する必要がある。 | |||
|- | |||
| タグ || 特定のコミットに対して名前 (タグ) を付けること。<br>主にバージョン番号を付ける場合に使用する。(例: v1.0.0) | |||
|- | |||
| .gitignore || Gitで管理しないファイルやディレクトリを指定するための設定ファイル。<br>ビルド生成物やログファイル、IDE設定等を除外するのに使用。 | |||
|} | |||
</center> | |||
<br><br> | |||
== Gitのインストール == | |||
Gitを使用するためには、ローカル環境でのGitの構築が必要である。<br> | |||
<br> | |||
まず、Gitをローカル環境で使用できるように、Gitをインストールする。<br> | |||
* Windows | |||
*: [https://git-for-windows.github.io/ Git for Windows]からGit for Windowsをダウンロードして、インストールする。 | |||
* Linux | |||
*: ほとんどのLinuxでは、標準でGitがインストールされている。 | |||
*: もしインストールされていなかったり、より新しいバージョンのGitを利用する場合は、 | |||
*: [[インストール - Git|こちらのページ]]を参照してインストールする。 | |||
<br> | |||
次に、Gitコマンドを操作するコマンドライン環境を準備する。<br> | |||
* Windows | |||
*: Gitコマンド付属のGit Bashを起動後、以下のコマンドを実行して、Gitのバージョンが表示されることを確認する。 | |||
*: <code>git --version</code> | |||
* Linux | |||
*: 以下のコマンドを実行して、Gitのバージョンが表示されることを確認する。 | |||
*: <code>git --version</code> | |||
<br><br> | |||
== Gitの設定 == | |||
<code>git config</code>コマンドは、Gitの設定ファイルにある変数の値を設定するものである。<br> | |||
<br> | |||
Gitの設定ファイルは3種類ある。<br> | |||
* システム全体に対する設定 | |||
*: /etc/gitconfig | |||
* ユーザごとの設定 | |||
*: ~/.gitconfig | |||
* プロジェクトごとの設定 | |||
*: .git/config | |||
<br> | |||
<code>--global</code>オプションは、~/.gitconfigファイルに設定する。<br> | |||
<code>--system</code>オプションは、/etc/gitconfigファイルに設定するが、使用する頻度はほとんどない。<br> | |||
上記のオプションを付加しない場合は、現在の作業ツリーにある.git/configファイルに設定する。<br> | |||
<br> | |||
==== ユーザ名 / メールアドレスの設定 ==== | |||
Gitを使用し始める場合は、まず、2つの変数user.nameと変数user.emailを~/.gitconfigに設定する。<br> | |||
これらの情報は、各コミットに書き込まれる名前とメールアドレスである。 | |||
<br> | |||
ユーザ名とメールアドレスを登録する。<br> | |||
git config --global user.name <ユーザ名> | |||
git config --global user.email <メールアドレス> | |||
<br> | |||
設定内容を確認する。<br> | |||
git config --list または git config --global -l | |||
# 出力 | |||
user.name=<ユーザ名> | |||
user.email=<メールアドレス> | |||
... | |||
<br> | |||
==== エディタの設定 ==== | |||
この設定は、コミット時において、変更および記録を記述する時に指定したエディタが自動的に立ち上がる。<br> | |||
<br> | |||
===== CLIエディタ ===== | |||
git config --global core.editor <エディタ名> | |||
# Nanoを設定する場合 | |||
# コマンドのパスを指定してもよい | |||
git config --global core.editor nano | |||
# Kateを設定する場合 | |||
# コマンドのパスを指定してもよい | |||
git config --global core.editor kate | |||
<br> | |||
==== カラーの設定 ==== | |||
変数color.uiをautoに指定することにより、画面表示に色が付いて視認性がよくなる。<br> | |||
git config --global color.ui auto | |||
<br> | |||
==== 初期ブランチ ==== | |||
Git 2.28以降では、初期ブランチ名を<u>master</u>という名前に設定するとよい。<br> | |||
git config --global init.defaultBranch master | |||
<br><br> | |||
== SSH接続 == | |||
例えば、以下の状況で運用しているGitのリモートリポジトリに接続する。<br> | |||
* リモートリポジトリがあるサーバ | |||
*: repository.example.jp (192.168.1.10) | |||
* リモートリポジトリのディレクトリ | |||
*: /home/ユーザ名/repository/repo.git | |||
* ユーザ名 | |||
*: hoge | |||
* 接続方法 | |||
*: SSH | |||
* ポート番号 | |||
*: 22 | |||
<br> | |||
この時、以下のコマンドを実行することで、リモートリポジトリにアクセスできる。<br> | |||
git clone ssh://hoge@repository.example.jp:22/home/ユーザ名/repository/repo.git | |||
<br> | |||
ここで、SSHログイン時にパスワード認証ではなく鍵認証している場合、<br> | |||
秘密鍵のファイル名が標準のid_rsaファイルであるならば、上記のコマンドでアクセスできる。<br> | |||
<br> | |||
しかし、運用上の都合で秘密鍵がid_rsaファイル以外にも複数存在している時がある。<br> | |||
そこで、秘密鍵が複数存在している場合は、サーバごとの秘密鍵の名前を示すための設定ファイルを作成する。<br> | |||
<br> | |||
以下の内容で、設定ファイルである~/.ssh/configファイルを作成する。<br> | |||
このファイルでは、複数のサーバの設定が記載できる。<br> | |||
<br> | |||
また、~/.ssh/configの設定は、Gitに限らず、全てのSSH接続で参照される。<br> | |||
# ~/.ssh/configファイル | |||
Host repo.remote | |||
HostName repository.example.jp | |||
User hoge | |||
IdentityFile ~/.ssh/id_rsa.repo.remote | |||
Port 22 | |||
Host repo.local | |||
HostName 192.168.1.100 | |||
User huga | |||
IdentityFile ~/.ssh/id_rsa.repo.local | |||
Port 22 | |||
<br> | |||
以下に、設定項目の説明を記載する。<br> | |||
* Host | |||
*: 任意の名前(エイリアスとして使用する) | |||
* HostName | |||
*: 接続するサーバのIPアドレスやFQDN | |||
* User | |||
*: サーバのユーザ名 | |||
* IdentityFile | |||
*: 秘密鍵ファイルのフルパス | |||
* Port | |||
*: SSHのポート番号 | |||
<br> | |||
~/.ssh/configファイルの作成後は、アクセス権限を変更する。<br> | |||
chmod 600 ~/.ssh/config | |||
chmod 700 ~/.ssh | |||
<br> | |||
~/.ssh/configファイルの作成後は、以下のコマンドで接続できる。<br> | |||
git clone ssh://repo.remote/home/ユーザ名/repository/repo.git | |||
<br> | |||
単純にサーバへSSH接続するだけなら、以下のようにコマンドを実行する。<br> | |||
# repository.example.jpへssh接続 | |||
ssh repo.remote | |||
# 192.168.1.100へssh接続 | |||
ssh repo.local | |||
<br><br> | <br><br> | ||
__FORCETOC__ | __FORCETOC__ | ||
[[カテゴリ:Git]] | [[カテゴリ:Git]] | ||