GitHub¶
GitHubとは¶
GitHubは、Gitで管理しているプロジェクトをクラウド上で共有・管理できるサービスである。
簡単に言うと
Gitのオンライン保管庫 + 開発支援プラットフォーム
である。
GitとGitHubの違い¶
よく混同されるが別物である。
| 項目 | Git | GitHub |
|---|---|---|
| 役割 | ローカル管理 | クラウド共有 |
| 動作場所 | PC内 | インターネット |
| 必要性 | 単体で使える | Gitが必要 |
イメージ
Git = ローカルの履歴管理
GitHub = インターネット上の保管・共有場所
GitHubでできること¶
GitHubはただの保存場所ではない。
主な機能は以下。
- リポジトリ管理
- コード共有
- チーム開発
- Issue管理
- Pull Request
- CI/CD(自動ビルド)
- GitHub Pages(Web公開)
リポジトリ¶
GitHubで管理するプロジェクト単位。
例
Aster Project
├─ firmware
├─ hardware
├─ docs
PublicとPrivate¶
Public¶
誰でも見れる
- オープンソース
- ポートフォリオ向け
Private¶
自分や許可した人だけ
- 開発中プロジェクト
- 非公開設計
PushとPull¶
Push¶
ローカル → GitHub
Pull¶
GitHub → ローカル
Clone¶
GitHubのリポジトリをコピーする。
git clone URL
Branch(ブランチ)¶
GitHubでもブランチを管理できる。
例
main
├─ dev
├─ feature-ui
Pull Request(PR)¶
変更を本体に取り込んでもらうための申請。
流れ
1. ブランチ作成
2. 変更
3. push
4. PR作成
5. レビュー
6. merge
Issue¶
タスク管理・バグ管理機能。
例
- バグ報告
- 機能追加要求
- TODO管理
Wikiとの違い¶
GitHubにはWiki機能もある。
- リポジトリとは別のドキュメント
- 軽いメモ向け
ただし現在は
README + Markdown管理
の方が主流。
GitHub Pages¶
GitHub上でWebサイトを公開できる機能。
例
docs → Webサイト化
MkDocsと組み合わせると
Markdown → Webドキュメント
が簡単に作れる。
GitHub Actions¶
自動化機能(CI/CD)。
できること
- ビルド
- テスト
- デプロイ
- ドキュメント更新
例(MkDocs)
push
↓
自動ビルド
↓
GitHub Pages更新
GitHubの構造¶
Repository
├─ Code
├─ Issues
├─ Pull Requests
├─ Actions
├─ Wiki
README.md¶
プロジェクトの説明書。
例
このプロジェクトはAsterの制御基板です
GitHubでは最重要ファイルの一つ。
Markdownとの相性¶
GitHubはMarkdownを標準サポートしている。
例
- README.md
- Issue
- Wiki
そのため
ドキュメント管理に非常に強い
GitHubのメリット¶
- 世界中で使われている
- 無料で利用可能
- チーム開発が簡単
- CI/CDが使える
- ドキュメント管理ができる
GitHubのデメリット¶
- 最初は機能が多すぎる
- PRやIssueがやや複雑
- ネット環境が必須
Asterでの活用¶
Asterでは以下で使える。
① ソースコード管理¶
firmware
② 回路・設計管理¶
hardware
③ ドキュメント管理(MkDocs)¶
docs/
④ 自動デプロイ¶
GitHub Actions → MkDocs → Pages
よくあるトラブル¶
pushできない¶
認証ミス
PRがマージできない¶
コンフリクト
Pagesが反映されない¶
Actions失敗
まとめ¶
GitHubはGitをベースにした開発プラットフォームである。
- コード管理
- チーム開発
- 自動化(Actions)
- Web公開(Pages)
- Issue管理
組み込み・Web・ドキュメントすべてを統合できる「開発の中心ハブ」である。