個人的Gitメモ
1. このメモについて
このメモは、Gitに関する個人的な備忘録です。以下の目的で作成しました:
- Git操作の基本をまとめて、必要なときにすぐに参照できるようにする
- 業務で毎日使用する状況ではないため、忘れがちな操作方法を記録しておく
- AIやWeb検索に頼らず、自分用の整理された情報源として活用する
現状は「なんとなくGitがわかる」程度の理解度ですが、コマンドの意味や内部的な仕組みを忘れてしまうことが多いため、このメモを作成しました。今後、新たな学びがあれば随時このメモを更新していく予定です。
2. Gitの基本構造と概念
2.1 リポジトリの種類とその関係
ローカルリポジトリ
- 自分のコンピュータ上に存在するリポジトリ
- 作業ディレクトリ、ステージングエリア、リポジトリの3つの領域で構成
- コミットやブランチ操作などの変更履歴管理が可能
- オフラインでも作業可能
リモートリポジトリ
- サーバー上に配置された共有リポジトリ
- GitHub、GitLab、Bitbucketなどのサービスを利用
- チーム開発のための共通作業場所として機能
- バックアップの役割も担う
2.2 リポジトリ間の関係
2.3 Gitの内部構造と領域の関係
Gitは以下の領域でファイルとその変更を管理しています:
-
プロジェクトディレクトリ
- リポジトリ全体を含むフォルダ
-
.git
サブディレクトリとワーキングディレクトリを含む
-
ワーキングディレクトリ/作業ディレクトリ(Working Directory)
- 実際にファイルを編集する場所
- プロジェクトディレクトリ内の
.git
以外の部分
-
ステージングエリア(Staging Area)
- コミットする変更を準備する場所
-
.git/index
ファイルに保存
-
ローカルリポジトリ
- コミットされた変更の履歴を保存する場所
-
.git
ディレクトリ内に保存
-
コミット履歴
- すべての確定した変更の連鎖
- ローカルリポジトリ内に保存
3. Git管理の始め方(2パターン)
パターン1: 既存プロジェクトをGit管理下に置く
# Gitリポジトリを初期化
git init
# ファイルをステージングエリアに追加
git add .
# 最初のコミット
git commit -m "初期コミット"
# ローカルのGitリポジトリに「origin」という名前でリモートリポジトリへの参照(接続先)を追加
## origin:リモートリポジトリの標準的な名前(任意の名前を設定可能)
git remote add origin リモートリポジトリのURL
# ローカルの `main` ブランチの内容を、`origin` という名前で覚えさせたリモートサーバーに送信
## main:デフォルトブランチ名(GitHubの標準、旧来はmasterが一般的)
## -u:上流ブランチを設定し、今後のpush/pullを簡略化できる
git push -u origin main
パターン2: 既存のリモートリポジトリをクローン
# 1. リモートリポジトリをローカルに複製
git clone リモートリポジトリのURL
# 2. プロジェクトディレクトリに移動
cd リポジトリ名
# 3. 作業開始(ファイル編集など)
# 4. 変更をステージングエリアに追加
git add 変更したファイル
# 5. 変更をコミット
git commit -m "変更内容の説明"
# 6. リモートリポジトリに変更をプッシュ
git push
リポジトリの連携の仕組み
ローカルリポジトリとリモートリポジトリを連携させるには、「どのリモートリポジトリと通信するか」をローカルリポジトリに教える必要があります。これが git remote add
コマンドの役割です。
git remote add origin https://github.com/username/repository.git
このコマンドは下記の意味を持ちます:
- remote add: リモートリポジトリへの「参照」を追加する
- origin: このリモートリポジトリに付ける名前(エイリアス)
- URL: 実際のリモートリポジトリの場所
つまり、git remote add
は「このURLにあるリポジトリをoriginという名前で記憶しておく」という指示です。これによりローカルとリモートの紐づけが完了し、以降は origin
という短い名前で参照できるようになります。
この紐づけ情報は .git/config
ファイルに保存され、以下のような形で記録されます:
[remote "origin"]
url = https://github.com/username/repository.git
fetch = +refs/heads/*:refs/remotes/origin/*
push と -u オプションの仕組み
git remote add
でリモートリポジトリとの接続先を設定した後、実際にコンテンツを送信するために git push
コマンドを使用します。特に最初のプッシュ時に -u
オプションを付ける理由と効果を理解しておくと便利です。
git push -u origin main
わかりやすく言うと:
- 「自分のパソコン(ローカル)の
main
ブランチの内容を、origin
という名前で覚えさせたリモートサーバーに送信して」という命令です - 方向性で考えると「ローカル → リモート」への送信を意味します
- フォーマットは
git push <送信先の名前> <送信元のブランチ名>
となります
このコマンドは下記の意味を持ちます:
- push: ローカルの変更をリモートリポジトリに送信する
- -u: upstream(上流)を設定する(--set-upstream の省略形)
- origin: 送信先のリモートリポジトリ名
- main: プッシュするローカルブランチ名と、対応するリモートブランチ名
-u
オプションは、ローカルブランチとリモートブランチの紐づけ(追跡関係)を設定します。これにより以下のメリットがあります:
-
次回以降のコマンド省略: 一度
-u
で設定すると、その後は単にgit push
やgit pull
だけで同じブランチに対して操作が可能 -
状態確認の容易さ:
git status
で実行すると上流ブランチとの差分情報が表示される - ブランチの追跡関係の明確化: どのローカルブランチがどのリモートブランチと関連付けられているかが明示的になる
この設定も .git/config
ファイルに保存され、以下のような形で記録されます:
[branch "main"]
remote = origin
merge = refs/heads/main
git clone
でリポジトリを複製した場合は、自動的に追跡ブランチの設定が行われるため、通常は -u
オプションを指定する必要はありません。一方、git init
から始めた場合は最初のプッシュ時に -u
の指定が必要です。
4. よく使うGitコマンドまとめ
基本的な操作
コマンド | 説明 |
---|---|
git init |
新しいGitリポジトリを初期化 |
git clone <URL> |
リモートリポジトリをローカルに複製 |
git status |
作業ディレクトリの状態を確認 |
git add <ファイル> |
変更をステージングエリアに追加 |
git commit -m "メッセージ" |
ステージングエリアの変更をコミット |
git log |
コミット履歴を表示 |
ブランチ操作
コマンド | 説明 |
---|---|
git branch |
ブランチ一覧を表示 |
git branch <ブランチ名> |
新しいブランチを作成 |
git checkout <ブランチ名> |
指定したブランチに切り替え |
git checkout -b <ブランチ名> |
ブランチを作成して切り替え |
git merge <ブランチ名> |
現在のブランチに指定したブランチをマージ |
リモートリポジトリとの連携
コマンド | 説明 |
---|---|
git remote -v |
リモートリポジトリ一覧を表示 |
git remote add <名前> <URL> |
リモートリポジトリを追加 |
git fetch |
リモートの変更を取得(マージなし) |
git pull |
リモートの変更を取得してマージ |
git push |
ローカルの変更をリモートに送信 |
git push -u <リモート名> <ブランチ名> |
ブランチをリモートにプッシュして追跡設定 |
Discussion