git – 分散型バージョン管理システム

リポジトリ管理

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 configGitの設定を管理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 switchgit restore に分離されました。
  • .gitignore に不要なファイルを指定することで追跡対象から除外できます。
  • Git の内部データ構造は オブジェクトデータベース(コミット, ツリー, ブロブ, タグ) に基づいています。

参考

関連コマンド

  • gh : GitHub CLI ツール(GitHub 操作用)
  • tig : git の対話型テキストビューア
  • svn : Git 以前によく使われていた集中型バージョン管理

さらなる探究のための手引き

Bash玄

はじめまして!Bash玄です。

エンジニアとしてシステム運用に携わる中で、手作業の多さに限界を感じ、Bashスクリプトを活用して業務を効率化したのがきっかけで、この道に入りました。「手作業は負け」「スクリプトはシンプルに」をモットーに、誰でも実践できるBashスクリプトの書き方を発信しています。

このサイトでは、Bashの基礎から実践的なスクリプト作成まで、初心者でもわかりやすく解説しています。少しでも「Bashって便利だな」と思ってもらえたら嬉しいです!

# 好きなこと
- シンプルなコードを書くこと
- コマンドラインを快適にカスタマイズすること
- 自動化で時間を生み出すこと

# このサイトを読んでほしい人
- Bashに興味があるけど、何から始めればいいかわからない人
- 定型業務を自動化したい人
- 効率よくターミナルを使いこなしたい人

Bashの世界に一歩踏み出して、一緒に「Bash道」を極めていきましょう!

Bash玄をフォローする

コメント