Gitコマンド完全マスターガイド
Gitはバージョン管理システムの中で最も広く使われているツールです。このガイドでは、すべての主要なGitコマンドとそのオプション、使用タイミングを詳細に解説します。
基本設定
git config
Gitの設定を確認・変更するコマンドです。
# ユーザー名を設定 git config --global user.name "Your Name" # メールアドレスを設定 git config --global user.email "your.email@example.com" # 設定を確認 git config --list
使用タイミング: Gitを初めて使うとき、またはユーザー情報を変更したいとき
主要オプション:
--global
: システム全体に適用(全リポジトリで有効)--local
: 現在のリポジトリのみに適用--system
: システム全体の設定ファイルを使用
リポジトリ操作
git init
新しいGitリポジトリを作成します。
# 現在のディレクトリをGitリポジトリとして初期化 git init
使用タイミング: 新しいプロジェクトを開始するとき
git clone
既存のリポジトリをコピーします。
# リポジトリをクローン git clone https://github.com/user/repo.git # 特定のディレクトリにクローン git clone https://github.com/user/repo.git my-project
使用タイミング: 既存のプロジェクトに参加するとき
主要オプション:
--depth 1
: 最新のコミットのみをクローン(浅いクローン)--branch <name>
: 特定のブランチをクローン
変更の追跡
git status
作業ディレクトリとステージングエリアの状態を表示します。
# 現在の状態を確認 git status # 簡潔な表示 git status -s
使用タイミング: 変更を加えた後、どのファイルが変更されたか確認したいとき
git add
変更をステージングエリアに追加します。
# 特定のファイルを追加 git add file.txt # すべての変更を追加 git add . # インタラクティブモード git add -i
使用タイミング: 変更をコミットする準備ができたとき
主要オプション:
-p
: 変更を部分的に追加(パッチモード)-u
: 追跡中のファイルのみ追加-A
: すべての変更を追加(新規ファイル含む)
git commit
ステージングされた変更をリポジトリに記録します。
# コミットメッセージを指定 git commit -m "Fix bug in login feature" # すべての変更を自動的にステージしてコミット git commit -a -m "Quick commit" # 直前のコミットを修正 git commit --amend
使用タイミング: 論理的にまとまった変更が完了したとき
主要オプション:
-m
: コミットメッセージを直接指定-a
: 追跡中のファイルを自動的にステージ--amend
: 直前のコミットを修正
変更の確認
git diff
変更内容の差分を表示します。
# 作業ディレクトリとステージングエリアの差分 git diff # ステージングエリアとリポジトリの差分 git diff --cached # 2つのコミット間の差分 git diff commit1 commit2
使用タイミング: 変更内容を詳細に確認したいとき
git log
コミット履歴を表示します。
# 基本のログ表示 git log # グラフ表示 git log --graph # 簡潔な表示 git log --oneline # 特定のファイルの変更履歴 git log -p file.txt
使用タイミング: プロジェクトの履歴を確認したいとき
主要オプション:
-p
: 変更内容も表示--stat
: 変更統計を表示--since="1 week ago"
: 期間指定--author="name"
: 作者指定
ブランチ操作
git branch
ブランチの作成、一覧表示、削除を行います。
# ブランチ一覧表示 git branch # 新しいブランチ作成 git branch new-feature # ブランチ削除 git branch -d old-branch # 強制削除 git branch -D old-branch
使用タイミング: 新しい機能開発を始めるとき、不要なブランチを整理するとき
git checkout
ブランチの切り替えやファイルの状態を復元します。
# ブランチの切り替え git checkout develop # 新しいブランチを作成して切り替え git checkout -b hotfix # ファイルを直前のコミット状態に戻す git checkout -- file.txt
使用タイミング: 作業ブランチを変更したいとき、誤った変更を元に戻したいとき
git merge
ブランチを現在のブランチに統合します。
# featureブランチを現在のブランチにマージ git merge feature # マージコミットを作成しない git merge --squash feature
使用タイミング: 機能開発が完了し、メインブランチに統合するとき
主要オプション:
--no-ff
: ファストフォワードを禁止--squash
: すべての変更を1つのコミットにまとめる
git rebase
コミット履歴を整理します。
# 現在のブランチをmainブランチにリベース git rebase main # インタラクティブリベース git rebase -i HEAD~3
使用タイミング: コミット履歴をきれいに整理したいとき
注意点: 公開済みのコミットにはリベースしないでください
リモート操作
git remote
リモートリポジトリを管理します。
# リモートリポジトリ一覧 git remote -v # 新しいリモートを追加 git remote add upstream https://github.com/original/repo.git # リモート情報を更新 git remote update
使用タイミング: 複数のリモートリポジトリを扱うとき
git fetch
リモートリポジトリから変更を取得します。
# リモートの全変更を取得 git fetch # 特定のリモートから取得 git fetch origin
使用タイミング: リモートの変更を確認したいが、ローカルにはまだマージしたくないとき
git pull
リモートリポジトリから変更を取得し、現在のブランチにマージします。
# リモートの変更を取得してマージ git pull # リベースしながらプル git pull --rebase
使用タイミング: リモートの最新変更をローカルに反映したいとき
git push
ローカルの変更をリモートリポジトリに送信します。
# 現在のブランチをリモートにプッシュ git push # 特定のブランチをプッシュ git push origin feature # タグをプッシュ git push --tags
使用タイミング: ローカルの変更をチームと共有したいとき
主要オプション:
-u
: アップストリームブランチを設定--force
: 強制プッシュ(注意して使用)
変更の取り消し
git reset
コミットやステージングを元に戻します。
# ステージングを解除 git reset HEAD file.txt # 直前のコミットを取消(変更は保持) git reset --soft HEAD~1 # 直前のコミットを取消(変更も破棄) git reset --hard HEAD~1
使用タイミング: 誤ってコミットやステージングしてしまったとき
注意点: --hard
オプションは作業内容を完全に削除するので注意
git revert
既存のコミットを打ち消す新しいコミットを作成します。
# 特定のコミットを打ち消す git revert commit-hash
使用タイミング: 公開済みのコミットを取り消したいとき
その他の便利コマンド
git stash
作業中の変更を一時的に退避します。
# 変更をスタッシュ git stash # スタッシュ一覧 git stash list # スタッシュを復元 git stash apply # スタッシュを削除 git stash drop
使用タイミング: 作業中の変更を一時的に保存して別の作業に移りたいとき
git tag
タグを作成・管理します。
# タグ一覧 git tag # 注釈付きタグ作成 git tag -a v1.0 -m "Release version 1.0" # タグをリモートにプッシュ git push origin v1.0
使用タイミング: リリースポイントをマークしたいとき
git cherry-pick
特定のコミットを現在のブランチに適用します。
# 特定のコミットを適用 git cherry-pick commit-hash
使用タイミング: 別のブランチの特定の変更だけを適用したいとき
Gitのベストプラクティス
- 小さく意味のあるコミットを作成する
- コミットメッセージは明確で簡潔に
- master/mainブランチを常にクリーンに保つ
- 機能ごとにブランチを作成する
- プッシュする前にローカルでテストする
- 公開済みのコミットはリベースしない
このガイドがGitの理解と活用に役立つことを願っています。定期的に参照してGitスキルを向上させましょう!
コメント
0 件のコメント :
コメントを投稿