コンテンツにスキップ

Git

Gitとは

Gitはソースコードや設計データの「変更履歴を管理するためのシステム」である。

簡単に言うと

ファイルのタイムマシン

である。


Gitでできること

Gitを使うと以下ができる。

  • 変更履歴の保存
  • 過去の状態に戻す
  • 複数人での開発
  • ブランチでの並行作業
  • 変更の比較

なぜGitが必要なのか

普通にフォルダ管理するとこうなる

project_final
project_final2
project_final_real
project_final_final

地獄である。


Gitなら

1つのリポジトリ + 履歴管理

で済む。


Gitの基本構造

Gitは3つの領域で構成される。


① ワークツリー

実際に作業しているファイル

編集中のフォルダ

② ステージングエリア

コミット前の準備場所

git add した状態

③ リポジトリ

履歴が保存される場所

git commit された状態

イメージ

ワークツリー → ステージ → リポジトリ

Gitの基本コマンド

初期化

git init

状態確認

git status

追加

git add .

コミット

git commit -m "message"

履歴確認

git log

ブランチとは

ブランチは

作業の分岐

である。


main
 ├─ feature-A
 ├─ feature-B

ブランチの用途

  • 新機能開発
  • バグ修正
  • 実験

ブランチ操作

作成

git branch feature

移動

git checkout feature

または

git switch feature

作成と移動同時

git switch -c feature

マージ

ブランチを統合する操作

feature → main

コマンド

git merge feature

コンフリクト

同じ箇所を複数人が変更すると発生する。

<<<<<<< HEAD
A
=======
B
>>>>>>> feature

手動で修正する必要がある。


GitHubとの関係

GitHubは

Git + クラウド

である。


できること

  • リモート保存
  • チーム開発
  • Issue管理
  • CI/CD

リモートリポジトリ

GitHubなどのオンライン保存場所


追加

git remote add origin URL

送信

git push origin main

取得

git pull

clone

リポジトリをコピーする

git clone URL

現在の作業位置を指すポインタ。

今どのコミットを見ているか

commitとは

変更の保存単位。

コードのスナップショット

commitメッセージ

重要なルール

  • 何をしたかを書く
  • 短く明確にする

fix: GPIOバグ修正
add: PWM制御追加

Gitのメリット

  • 履歴管理できる
  • ミスを戻せる
  • チーム開発できる
  • 実験が安全にできる

Gitのデメリット

  • 最初は難しい
  • コンフリクトが面倒
  • コマンドに慣れが必要

Asterでの使い方

Asterでは以下に使う。

  • 回路設計
  • ファームウェア
  • ドキュメント(MkDocs)
  • 設計履歴管理

docs/
firmware/
hardware/

よくあるトラブル

addし忘れ

コミットに反映されない


push忘れ

ローカルだけ更新される


コンフリクト放置

コード崩壊


まとめ

Gitは開発における必須ツールである。

  • 変更履歴を管理できる
  • ブランチで安全に開発できる
  • GitHubと組み合わせて使う
  • チーム開発の基盤になる

組み込み開発でもソフトウェア開発でも「最初に覚えるべきインフラ」と言える。