git は、ソースコードの変更履歴を記録・追跡し、複数人での開発を効率的に行うための分散型バージョン管理システム (DVCS) です。
ブランチを自由に作成して並行開発を行い、マージによって統合できます。
Linuxカーネル開発のために Linus Torvalds によって開発され、現在ではソフトウェア開発の標準的なツールとなっています。
コマンドについてのオプションなどは本記事で解説しますが、Gitの概念や使いこなし方、使用していく中で躓くポイントについてはこちらの記事でまとめました → Gitとは
構文(Syntax)
git [コマンド] [オプション] [引数...]
主なサブコマンド一覧
| コマンド | 説明 | 使用例 |
|---|---|---|
git init | 新しいリポジトリを作成 | git init |
git clone | 既存リポジトリを複製 | git clone https://github.com/user/repo.git |
git status | 作業ツリーの状態を確認 | git status |
git add | ファイルをステージングエリアに追加 | git add file.txt |
git rm | ファイルをリポジトリから削除 | git rm file.txt |
git commit | ステージング内容をコミット | git commit -m "Initial commit" |
git log | コミット履歴を表示 | git log --oneline --graph |
git diff | 差分を表示 | git diff |
git branch | ブランチの一覧・作成・削除 | git branch feature |
git checkout | ブランチやコミットに切り替え | git checkout feature |
git switch | 新しいブランチ切替コマンド | git switch -c feature |
git merge | 他のブランチを統合 | git merge feature |
git rebase | コミット履歴を付け替える | git rebase main |
git remote | リモートリポジトリを管理 | git remote -v |
git fetch | リモートの変更を取得(反映せず) | git fetch origin |
git pull | リモートの変更を取得してマージ | git pull origin main |
git push | ローカルの変更をリモートに送信 | git push origin main |
git tag | タグを作成 | git tag v1.0.0 |
git stash | 作業中の変更を一時退避 | git stash |
git reset | コミットやステージを取り消し | git reset --hard HEAD~1 |
git revert | 過去のコミットを打ち消す新コミットを作成 | git revert a1b2c3d |
git cherry-pick | 特定のコミットを現在のブランチに適用 | git cherry-pick a1b2c3d |
git config | Gitの設定を管理 | git config --list |
実行例
新しいリポジトリを作成
git init myproject
cd myproject
ファイルをコミット
echo "Hello Git" > hello.txt
git add hello.txt
git commit -m "Add hello.txt"
履歴を確認
git log --oneline
出力例:
a1b2c3d Add hello.txt
ブランチを作って切り替え
git branch feature
git checkout feature
リモートから最新を取得
git fetch origin
git merge origin/main
リモートに push
git push origin feature
エラー例(未初期化リポジトリで使用)
git status
出力例:
fatal: not a git repository (or any of the parent directories): .git
備考
- Git は 分散型 であり、各クローンが完全なリポジトリを保持します。
git checkoutはブランチ切り替え・ファイル復元の両方を担っていましたが、新しいバージョンではgit switchとgit restoreに分離されました。.gitignoreに不要なファイルを指定することで追跡対象から除外できます。- Git の内部データ構造は オブジェクトデータベース(コミット, ツリー, ブロブ, タグ) に基づいています。
参考
- 公式ドキュメント: https://git-scm.com/doc
- Pro Git Book(無料公開): https://git-scm.com/book/ja/v2
- manページ: git(1)
関連コマンド
さらなる探究のための手引き
git – 分散型バージョン管理システム の深掘り記事
- git cherry-pick – 特定のコミットを別のブランチに適用するコマンド
- git remote – リモートリポジトリを管理するコマンド
- git fetch – リモートの更新を取得するコマンド
- git pull – リモートの変更を取得して統合するコマンド
- git push – ローカルの変更をリモートに送信するコマンド
- git tag – タグを作成・一覧表示・削除するコマンド
- git stash – 作業中の変更を一時的に退避するコマンド
- git reset – コミットやステージを取り消すコマンド
- git revert – コミットを取り消す新しいコミットを作成するコマンド
- git config – Git の設定を管理するコマンド
- git lfs – Git Large File Storage
- git rebase – コミット履歴を付け替えるコマンド
- git merge – ブランチを統合するコマンド
- git init – 新しいリポジトリを作成するコマンド
- git clone – 既存リポジトリをコピーするコマンド
- git status – リポジトリの状態を表示するコマンド
- git add – ファイルをステージに追加するコマンド
- git commit – ステージされた変更を記録するコマンド
- git log – コミット履歴を表示するコマンド
- git diff – 変更内容を比較表示するコマンド
- git branch – ブランチを作成・一覧表示・削除するコマンド
- git checkout – ブランチやコミットを切り替えるコマンド
- git switch – ブランチを切り替えるコマンド
- git rm – ファイルをリポジトリから削除するコマンド

コメント