目的
実務でGitを使う中で、まだGitコマンドが染みついていない初心者です。
そのため、基本的なGitコマンドとその役割を、備忘録的にまとめてみたいと思います。
Gitを使うときに手元に置く記事になればと思い、作成しました。
リポジトリ関係
ローカルリポジトリの作成
ローカルリポジトリを作成したいフォルダで実行する。
自動的に.gitというディレクトリが作成される。
git init
リモートリポジトリの登録
ローカルリポジトリにリモートリポジトリを紐づける。
git remote add origin <repository-url>
# 登録内容の確認
git remote -v
コミット/プッシュ関係
Gitの流れ
作業
↓
git add # ステージングエリアに登録
↓
git commit # ローカルリポジトリにコミット
↓
git push # リモートリポジトリにプッシュ
ステージングエリアに変更を登録
ワークツリーに配置されたファイルは、一度ステージングエリアに登録してからコミットする必要がある。
# カレントディレクトリ配下のすべてのファイルを追加
git add .
# 特定ディレクトリ配下のすべてのファイルを追加
git add directory
# 特定ファイルを追加
git add directory/file.md
git add file.md
ローカルリポジトリへのコミット
# コミットメッセージ入力画面が開く
git commit
# メッセージを書く場合
git commit -m "メッセージの内容"
リモートリポジトリへのプッシュ
repository-name、branch-nameを、自分のものに合わせて適宜変更する
git push repository-name branch-name
ブランチ関係
ブランチの作成
ブランチは以下のコマンドで作成できるが、作成しただけだと切り替わらないことに注意する。
branch-nameを、自分のものに合わせて適宜変更する
git branch branch-name
使用しているブランチの確認
git branch
# ブランチ一覧の確認
git branch -a
ブランチの切り替え
branch-nameを、自分のものに合わせて適宜変更する。
git switch branch-name
mainとの差分確認
今のブランチと、mainブランチとの差分を確認する。
git diff main
各種確認関係
ローカルリポジトリの状態を確認
ステージングエリアに登録されていないファイルは、Untracked files扱いになり、表示される。
git status
差分の確認
- 追加:先頭に「+」が付いた緑色の文字
- 削除:先頭に「‐」が付いた赤色の文字
# ワークツリーとステージングエリアの差分を確認
git diff
# ステージングエリアとGitディレクトリ(前回のコミット)との差分を確認
git diff --cached
コミット履歴を確認する
git log
# 差分付きで確認
git log -p
# おすすめ
git log --oneline
git log --oneline --graph
クローン関係
リモートリポジトリをコピーする
既存のリモートリポジトリをローカル環境へコピー(クローン)する。
実行すると、リポジトリ名と同じ名前のディレクトリが作成される。
git clone https://github.com/user/sample.git
プルとフェッチ関係
指定したリモートリポジトリの内容を、使用中のローカルリポジトリに取り込む。
- プル:取得内容がワークツリーまで反映され、PC内の内容が即座に書き換わる
- フェッチ:ローカルリポジトリへの取得しか行わず、ワークツリーに反映させるには再度プルするか、マージを行う必要がある
# プル
git pull origin main
# フェッチ
git fetch origin
gitignore関係
Gitで管理したくないファイルは、.gitignoreファイルを作成し記入しておく。
.gitignoreは配置されたディレクトリ以下に対して有効であり、通常はリポジトリルートに配置する。
.gitignoreファイルをステージングエリアに登録
git add .gitignore
用語集
リポジトリ(Repository)
ファイルや変更履歴を管理する場所。
Gitでは、変更履歴を含めたプロジェクト全体をリポジトリと呼ぶ。
ローカルリポジトリ(Local Repository)
自分のPC上に存在するリポジトリ。
コミット履歴やブランチ情報はここに保存される。
リモートリポジトリ(Remote Repository)
GitHubやAzure DevOpsなどのサーバ上に存在するリポジトリ。
複数人での開発時に共有される。
ワークツリー(Working Tree)
現在作業中のファイルが置かれている領域。
ファイル編集は基本的にワークツリーで行う。
.gitディレクトリ
Gitが内部情報を保存するためのディレクトリ。
コミット履歴やブランチ情報などが保存される。
ステージングエリア(Staging Area)
コミット対象のファイルを一時的に登録する場所。
変更したファイルは、まず git add でステージングエリアへ登録する。
コミット(Commit)
変更内容をローカルリポジトリへ記録すること。
Gitにおける履歴管理の基本単位。
コミット履歴(Commit History)
これまでに行ったコミットの記録。
git log コマンドで確認できる。
ブランチ(Branch)
開発内容を分岐して管理する仕組み。
他の作業に影響を与えずに開発を進められる。
mainブランチ
プロジェクトの基準となるブランチ。
現在は main が一般的で、以前は master が使われていた。
リモート(Remote)
ローカルリポジトリと接続されたリモートリポジトリの情報。
通常は origin という名前で登録される。
origin
リモートリポジトリに付けられるデフォルトの名前。
git push origin main の origin がこれにあたる。
プッシュ(Push)
ローカルリポジトリのコミットをリモートリポジトリへ送信すること。
プル(Pull)
リモートリポジトリの変更を取得し、現在の作業内容へ反映すること。
フェッチ(Fetch)
リモートリポジトリの変更情報を取得すること。
ワークツリーには反映されないため、安全に最新状態を確認できる。
差分(Diff)
ファイルの変更内容。
追加・削除された行などを確認できる。
トラッキング対象(Tracked File)
Gitが管理しているファイル。
一度 git add したファイルは基本的に追跡対象となる。
Untracked Files
Gitがまだ管理していないファイル。
git status 実行時に表示される。
.gitignore
Git管理の対象外にしたいファイルやディレクトリを記述する設定ファイル。
仮想環境やログファイルなどを除外する際に利用する。
GitHub
Gitリポジトリをクラウド上で管理するサービスの一つ。
Gitそのものではなく、Gitを利用するためのホスティングサービス。
Git
ファイルの変更履歴を管理するための分散型バージョン管理システム。